/* Camada de apresentação Zyntra: não altera IDs, dados nem os fluxos do app.js. */
:root { --zx-bg:#090b0f; --zx-panel:#14171d; --zx-panel-2:#181b22; --zx-line:#292f3b; --zx-muted:#95a1b6; --zx-cyan:#3bc5ff; --zx-pink:#ff3c75; }
html { min-height:100%; background:var(--zx-bg); overflow-x:hidden; }
body.zx-active { min-height:100vh; overflow-x:hidden; background:var(--zx-bg); color:#f8fafc; }
body.zx-active .app-shell > .topbar,
body.zx-active .app-shell > .status-strip,
body.zx-active .app-shell > .tabs { display:none; }
.zx-topbar { position:fixed; inset:0 0 auto 0; z-index:90; height:56px; display:grid; grid-template-columns:220px minmax(220px,420px) 1fr; align-items:center; gap:22px; padding:0 18px; background:#101217; border-bottom:1px solid #242933; color:#f8fafc; }
.zx-brand { display:flex; align-items:center; gap:10px; min-width:0; text-align:left; }
.zx-brand img { width:30px; height:30px; object-fit:contain; }
.zx-brand-txt { display:grid; gap:1px; line-height:1; }
.zx-brand-txt b { color:#ff4c7d; font-size:14px; }.zx-brand-txt span { color:#9ba7b9; font-size:9px; letter-spacing:1.3px; text-transform:uppercase; }
.zx-search-area { display:flex; align-items:center; gap:8px; min-width:0; }.zx-search { height:38px; flex:1; display:flex; align-items:center; gap:8px; padding:0 12px; border:1px solid #303744; border-radius:10px; background:#1a1d24; color:#8490a4; }
.zx-search input { width:100%; min-width:0; border:0; outline:0; background:transparent; color:#e5e7eb; font-size:13px; }
.zx-search input::placeholder { color:#778399; }
.zx-complement { min-height:38px; padding:0 11px; border:1px solid #255d78; border-radius:9px; background:#102432; color:#bfeeff; font:700 11px/1 Inter,Arial,sans-serif; cursor:pointer; white-space:nowrap; }.zx-complement:hover:not(:disabled) { border-color:#52c9ff; color:#fff; background:#153448; }.zx-complement:disabled { opacity:.48; cursor:not-allowed; }
.zx-topbar-right { justify-self:end; display:flex; align-items:center; gap:10px; }
.zx-newcase,.zx-iconbtn { border:1px solid #35404f; background:#1a1d24; color:#eaf0f8; font:700 12px/1 Inter,Arial,sans-serif; cursor:pointer; }
.zx-newcase { min-height:37px; padding:0 14px; border-radius:9px; }.zx-newcase:hover,.zx-iconbtn:hover { border-color:#52c9ff; color:#fff; }
.zx-action { min-height:35px; padding:0 11px; border:1px solid #793047; border-radius:8px; color:#f7fbff; background:radial-gradient(circle at 38% 20%,#572034 0%,#2c1520 46%,#090a0e 100%); box-shadow:0 7px 16px rgba(0,0,0,.35),0 0 12px rgba(166,35,77,.12); font:700 11px/1 Inter,Arial,sans-serif; cursor:pointer; white-space:nowrap; }.zx-action:hover { border-color:#ef789f; background:radial-gradient(circle at 38% 20%,#6b2942 0%,#351722 46%,#090a0e 100%); box-shadow:0 10px 21px rgba(0,0,0,.45),0 0 19px rgba(202,46,98,.25); }
.zx-iconbtn { width:36px; height:36px; display:grid; place-items:center; border:0; background:transparent; color:#aab5c5; font-size:18px; }
.zx-user { display:flex; align-items:center; gap:9px; min-height:40px; padding:2px 8px 2px 2px; border:0; border-radius:22px; background:transparent; color:#f8fafc; cursor:default; text-align:left; }
.zx-user img { width:34px; height:34px; border-radius:50%; object-fit:cover; border:1px solid #ff4c7d; }.zx-user-copy { display:grid; gap:2px; white-space:nowrap; }.zx-user-copy b { font-size:12px; font-weight:800; }.zx-user-copy small { color:#ff4c7d; font-size:10px; font-weight:800; line-height:1; }
.zx-sidebar { position:fixed; z-index:80; inset:56px auto 0 0; width:236px; display:flex; flex-direction:column; background:#101217; border-right:1px solid #252b35; color:#c7d1df; transition:width .18s ease,transform .18s ease; }
.zx-nav { flex:1; overflow:auto; padding:16px 8px; }.zx-navgroup { margin:0 0 18px; }.zx-grouplabel { padding:0 8px 8px; color:#78869c; font-size:10px; font-weight:800; letter-spacing:1.2px; text-transform:uppercase; }
.zx-navitem { width:100%; min-height:40px; display:flex; align-items:center; gap:12px; padding:0 10px; border:1px solid transparent; border-radius:8px; color:#b9c5d5; background:transparent; font:700 13px Inter,Arial,sans-serif; text-align:left; cursor:pointer; }
.zx-navitem:hover { background:#181c23; color:#fff; }.zx-navitem.is-active { position:relative; border-color:#394352; background:#1b1f27; color:#fff; }.zx-navitem.is-active::before { content:""; position:absolute; left:-9px; width:3px; height:22px; border-radius:4px; background:var(--zx-pink); }.zx-navitem.is-ai .zx-ic { color:var(--zx-pink); }.zx-ic { width:18px; flex:0 0 18px; display:inline-grid; place-items:center; text-align:center; color:#9ba8ba; font-size:16px; }.zx-ic svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.zx-badge { margin-left:auto; min-width:22px; padding:3px 6px; border:1px solid #313a49; border-radius:12px; background:#1b222d; color:#b9c7db; font-size:11px; text-align:center; }
.zx-sidebar-actions { display:flex; align-items:center; justify-content:space-between; min-height:48px; border-top:1px solid #252b35; padding:0 8px; }
.zx-collapse,.zx-logout { min-height:34px; display:flex; align-items:center; gap:8px; padding:0 9px; border:0; border-radius:6px; background:transparent; cursor:pointer; font:600 12px Inter,Arial,sans-serif; transition:color .2s ease,background-color .2s ease; }
.zx-collapse { color:#93a0b3; }.zx-collapse:hover { color:#d7e0eb; background:#1a2029; }
.zx-logout { color:#f87171; }.zx-logout .zx-ic { color:currentColor; }.zx-logout:hover { color:#fca5a5; background:rgba(239,68,68,.1); }
.zx-hamburger { display:none; }.zx-shell { display:none; }
body.zx-active .app-shell { min-height:100vh; max-width:100%; overflow-x:hidden; background:var(--zx-bg); }
body.zx-active .workspace { min-height:calc(100vh - 108px); width:auto; margin:108px 16px 16px 252px; padding:0; max-width:calc(100vw - 268px); }
body.zx-active .workspace > .tab-panel { min-width:0; max-width:100%; }
body.zx-active .workspace > .tab-panel.active .panel { border:1px solid var(--zx-line); border-radius:12px; background:var(--zx-panel); box-shadow:none; overflow:hidden; }
body.zx-active .panel-title { padding:17px 20px; border-bottom:1px solid var(--zx-line); background:linear-gradient(90deg,#151920,#12151a); color:#fff; font-size:19px; }
body.zx-active .panel-body { padding:20px; background:transparent; } body.zx-active .metric,body.zx-active .card,body.zx-active .report,body.zx-active .narrative { background:var(--zx-panel-2); border-color:#303846; }
body.zx-active .run-btn,body.zx-active .upload-btn { background:#ff3c75; box-shadow:none; } body.zx-active .ghost-btn { border-color:#354556; color:#b9dff3; background:#17202a; }
body.zx-active input,body.zx-active select,body.zx-active textarea { background:#11151b; border-color:#384252; color:#eef2f7; } body.zx-active label,body.zx-active small,body.zx-active .muted-note { color:#9eabbd; }
.zx-case { position:fixed; z-index:70; top:56px; left:236px; right:0; height:52px; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:0 24px; background:#0e1015; border-bottom:1px solid #252b35; color:#f8fafc; transition:left .18s ease; }
.zx-case-num { display:flex; align-items:center; gap:10px; font-size:15px; font-weight:850; }.zx-case-veh { margin-top:4px; color:#a9b9ce; font-size:12px; }.zx-plate { padding:3px 9px; border:1px solid #3b4554; border-radius:5px; background:#1a2029; font-size:12px; letter-spacing:.8px; }
.zx-case-meta { display:flex; align-items:center; gap:22px; }.zx-pill { padding:5px 11px; border:1px solid #374250; border-radius:16px; color:#b9c3d1; font-size:11px; font-weight:800; }.zx-pill.is-analise { color:#58d2ff; border-color:#267593; background:#0d2632; }.zx-pill.is-ok { color:#61df9d; border-color:#236a4c; }.zx-pill.is-critico { color:#ff7899; border-color:#9f3654; }.zx-case-meta small { display:block; color:#7d8aa0; font-size:9px; letter-spacing:1px; text-transform:uppercase; }.zx-case-meta b { font-size:12px; }
body.zx-active.zx-view-overview .workspace > .tab-panel { display:none !important; } body.zx-active.zx-view-overview #zxOverview { display:block; }
.zx-ov-head { margin:0 0 20px; }.zx-ov-head h2 { margin:0; font-size:26px; }.zx-ov-head p { margin:7px 0 0; color:#9db3ca; font-size:13px; }.zx-ov-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-bottom:20px; }.zx-stat,.zx-card,.zx-empty { border:1px solid #303846; border-radius:13px; background:var(--zx-panel); }.zx-stat { min-height:96px; padding:18px; border-left:3px solid #8f3155; }.zx-stat.is-ai { border-left-color:var(--zx-cyan); }.zx-stat-v { color:#fff; font-size:29px; font-weight:900; }.zx-stat.is-ai .zx-stat-v { color:var(--zx-cyan); }.zx-stat-l { margin-top:7px; color:#a3b1c5; font-size:12px; }.zx-ov-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }.zx-card { padding:19px; }.zx-card h3 { display:flex; align-items:center; gap:8px; margin:0 0 14px; color:#eef5ff; font-size:13px; text-transform:uppercase; letter-spacing:.6px; }.zx-card.is-ai h3 { color:var(--zx-cyan); }.zx-kv { display:flex; justify-content:space-between; gap:16px; padding:9px 0; border-bottom:1px solid #2a303a; font-size:13px; }.zx-kv:last-child { border:0; }.zx-kv .k { color:#a5b2c4; }.zx-kv .v { color:#fff; font-weight:750; text-align:right; }.zx-check { display:flex; gap:9px; align-items:center; padding:7px 0; color:#d7e1ed; font-size:13px; }.zx-check .zx-ic { color:#55d994; }.zx-check.is-pending .zx-ic { color:#e7a94e; }.zx-linkbtn { margin-top:13px; padding:8px 12px; border:1px solid #3c4859; border-radius:7px; background:transparent; color:#cfe7fa; font-weight:750; cursor:pointer; }.zx-linkbtn.is-ai { color:var(--zx-cyan); border-color:#267593; }.zx-timeline-card { margin-top:16px; }.zx-timeline { display:flex; justify-content:space-between; gap:0; }.zx-tl-step { position:relative; flex:1; color:#7f8ba0; font-size:11px; text-align:center; }.zx-tl-step:not(:last-child)::after { content:""; position:absolute; top:7px; left:55%; width:90%; height:2px; background:#303846; }.zx-tl-dot { width:14px; height:14px; margin:0 auto 8px; border:2px solid #566173; border-radius:50%; background:#151920; position:relative; z-index:1; }.zx-tl-step.is-done { color:#cdeedc; }.zx-tl-step.is-done .zx-tl-dot { border-color:#4edb8c; background:#4edb8c; }.zx-tl-step.is-current { color:#61d5ff; }.zx-tl-step.is-current .zx-tl-dot { border-color:#48c7ff; box-shadow:0 0 0 4px #123242; }.zx-ai-disclaimer { margin:14px 0 0; color:rgba(255,255,255,.76); font:11px/1.4 Inter,Arial,sans-serif; text-align:center; }
body.zx-collapsed .zx-sidebar { width:62px; } body.zx-collapsed .zx-case { left:62px; } body.zx-collapsed .workspace { margin-left:78px; max-width:calc(100vw - 94px); } body.zx-collapsed .zx-lbl,body.zx-collapsed .zx-grouplabel { display:none; } body.zx-collapsed .zx-navitem { justify-content:center; padding:0; } body.zx-collapsed .zx-sidebar-actions { flex-direction:column; justify-content:center; gap:2px; padding:4px 0; } body.zx-collapsed .zx-collapse,body.zx-collapsed .zx-logout { min-height:25px; padding:0; } body.zx-collapsed .zx-badge { position:absolute; right:2px; top:3px; min-width:15px; padding:1px 3px; font-size:9px; }.zx-backdrop { display:none; }

.zx-card h3 .zx-ic { width:15px; flex-basis:15px; color:#eef5ff; }
.zx-card h3 .zx-ic svg { width:15px; height:15px; stroke-width:2.2; }
.zx-card.is-ai h3 .zx-ic { color:var(--zx-cyan); }
.zx-ai-card-content { display:grid; grid-template-columns:minmax(0,1fr) minmax(180px,1.056fr); gap:15px; align-items:stretch; }
.zx-ai-card-summary { min-width:0; }
.zx-ai-visual-preview { min-height:170px; margin:0; overflow:hidden; background:transparent; }
.zx-ai-visual-preview img { display:block; width:100%; height:100%; object-fit:contain; object-position:center; content:url("visual-ai-vehicle.png"); }
@media (max-width:900px) { .zx-topbar { grid-template-columns:auto 1fr auto; gap:10px; padding:0 10px; }.zx-hamburger { display:grid; }.zx-brand-txt,.zx-search { display:none; }.zx-newcase { padding:0 10px; }.zx-user span,.zx-navtoggle { display:none; }.zx-sidebar { transform:translateX(-100%); width:236px; }.zx-case { left:0; top:56px; padding:0 14px; }.zx-case-meta { gap:10px; }.zx-case-meta .zx-worker { display:none; } body.zx-active .workspace { margin:108px 10px 16px; }.zx-ov-stats,.zx-ov-grid { grid-template-columns:1fr 1fr; }.zx-timeline { overflow:auto; min-width:620px; }.zx-timeline-card { overflow:hidden; }.zx-timeline-card > .zx-timeline { overflow:auto; }.zx-drawer-open .zx-sidebar { transform:translateX(0); box-shadow:18px 0 45px rgba(0,0,0,.45); }.zx-drawer-open .zx-backdrop { display:block; position:fixed; z-index:75; inset:56px 0 0; background:rgba(0,0,0,.52); } }
@media (max-width:560px) { .zx-case-veh { max-width:180px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }.zx-case-meta .zx-metric { display:none; }.zx-ov-stats,.zx-ov-grid { grid-template-columns:1fr; }.zx-topbar-right { gap:2px; }.zx-newcase { font-size:11px; }.zx-user { padding:2px; } }

/* Chat acompanha a linguagem do shell: ciano para interação, rosa apenas como acento. */
body.zx-active .chat-launcher {
  z-index:101;
  isolation:isolate;
  border-color:rgba(59,197,255,.58);
  color:#edfaff;
  background:linear-gradient(135deg,#15364a 0%,#126888 58%,#16465d 100%);
  box-shadow:0 12px 28px rgba(3,154,214,.25), inset 0 1px 0 rgba(255,255,255,.12);
}
body.zx-active .chat-launcher::after {
  content:"";
  position:absolute;
  inset:1px;
  z-index:-1;
  border-radius:inherit;
  background:linear-gradient(120deg,rgba(255,60,117,.16),transparent 38%);
}
body.zx-active .chat-launcher:hover {
  transform:translateY(-2px);
  border-color:#70d8ff;
  box-shadow:0 16px 34px rgba(3,154,214,.35),0 0 0 3px rgba(59,197,255,.09);
}
body.zx-active .chat-launcher:focus-visible { outline-color:rgba(59,197,255,.85); }
body.zx-active .chat-float-panel { z-index:100; filter:drop-shadow(0 18px 35px rgba(0,0,0,.48)); }
body.zx-active .chat-float-panel .panel { border-color:#344354; background:#141922; }
body.zx-active .chat-float-panel .panel-title { background:linear-gradient(90deg,#142631,#151922); color:#eefbff; }
body.zx-active .chat-close-btn { width:auto; height:auto; min-height:34px; display:flex; align-items:center; gap:8px; padding:0 9px; border:0; border-radius:6px; background:transparent; color:#f87171; font:600 12px Inter,Arial,sans-serif; }
body.zx-active .chat-close-btn svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
body.zx-active .chat-close-btn:hover { background:rgba(239,68,68,.1); color:#fca5a5; }

@media (max-width:900px) { body.zx-active .workspace { max-width:calc(100vw - 20px); } }

/* Nenhuma aba interna retorna ao tema claro legado. */
body.zx-active .panel-body,
body.zx-active .tab-panel,
body.zx-active .tab-panel .panel-body { color:#dbe5f1; background:transparent; }
body.zx-active .upload-zone,
body.zx-active .budget-draft-toolbar,
body.zx-active .manual-budget-panel,
body.zx-active .parts-quote-block,
body.zx-active .previa-progress,
body.zx-active .previa-json-wrap,
body.zx-active .report-shadow-card,
body.zx-active .report-section,
body.zx-active .narrative,
body.zx-active .kpi-contract-notice {
  color:#dbe5f1;
  border-color:#303b4a;
  background:#171b22;
  box-shadow:none;
}
body.zx-active .upload-zone { border-style:dashed; border-color:#426176; background:linear-gradient(135deg,#17232d,#161a21); }
body.zx-active .upload-zone strong { color:#f4f8fc; }
body.zx-active .upload-zone span,
body.zx-active .muted-note,
body.zx-active .previa-progress p,
body.zx-active .parts-quote-block > p { color:#9caec2; }
body.zx-active .parts-quote-block h3,
body.zx-active .manual-budget-panel h3,
body.zx-active .report-section h3,
body.zx-active .croqui-card h4,
body.zx-active .previa-json-wrap summary { color:#dcecff; }
body.zx-active .metric,
body.zx-active .card,
body.zx-active .finance,
body.zx-active .thumb,
body.zx-active .damage,
body.zx-active .enriched-budget-item,
body.zx-active .piece-technical-section,
body.zx-active .enriched-metadata-card,
body.zx-active .previa-checklist > div,
body.zx-active .previa-detail-grid > span,
body.zx-active .reports-reconciliation-grid > span,
body.zx-active .report-shadow-card,
body.zx-active .kpi-snapshot-card {
  color:#e6edf5 !important;
  border-color:#303b4a !important;
  background:#171b22 !important;
  box-shadow:none;
}
body.zx-active .metric small,
body.zx-active .card small,
body.zx-active .finance small,
body.zx-active td small,
body.zx-active .previa-checklist small,
body.zx-active .previa-detail-grid small,
body.zx-active .reports-reconciliation-grid small,
body.zx-active .kpi-snapshot-card small,
body.zx-active .kpi-metric-line span { color:#9caec2 !important; }
body.zx-active .metric strong,
body.zx-active .card strong,
body.zx-active .finance strong,
body.zx-active .finance .value,
body.zx-active .finance.good .value,
body.zx-active .finance.warn .value,
body.zx-active .previa-checklist strong,
body.zx-active .previa-detail-grid strong,
body.zx-active .reports-reconciliation-grid strong,
body.zx-active .kpi-metric-line strong { color:#f5f8fc !important; }
body.zx-active .damage p,
body.zx-active .narrative p,
body.zx-active .report p,
body.zx-active .croqui-card p,
body.zx-active .report-shadow-card p { color:#c8d4e2 !important; }
body.zx-active .previa-progress { border-color:#396a82; }
body.zx-active .previa-progress-heading { color:#dff4ff; }
body.zx-active .previa-progress-track { border-color:#2e3948; background:#0c1016; }
body.zx-active .previa-progress.is-complete { border-color:#32866b; background:#13251f; }
body.zx-active .previa-progress.is-complete .previa-progress-heading { color:#6fe2ad; }
body.zx-active .previa-progress.is-error { border-color:#a53d5c; background:#2a1720; }
body.zx-active .previa-progress.is-error .previa-progress-heading { color:#ff9ab4; }
body.zx-active pre { color:#bfe9ff; border-color:#2e3948; background:#080b10; }
body.zx-active .kpi-contract-notice { color:#bcefff; }
body.zx-active .kpi-contract-notice.is-warning { color:#ffd39a; border-color:#72552e; background:#282117; }

/* Ações seguem a marca; os comandos auxiliares permanecem discretos e legíveis. */
body.zx-active .run-btn,
body.zx-active .upload-btn,
body.zx-active .previa-btn {
  color:#fff;
  background:linear-gradient(135deg,#ff3c75 0%,#df327f 48%,#9b3bce 100%);
  box-shadow:0 10px 22px rgba(220,47,122,.22);
}
body.zx-active .run-btn.secondary { background:linear-gradient(135deg,#d93478,#8d3dbd); }
body.zx-active .ghost-btn {
  color:#c9ecff;
  border-color:#315a71;
  background:#152330;
  box-shadow:none;
}
body.zx-active .ghost-btn:hover { border-color:#52cfff; background:#193445; color:#f2fbff; }
body.zx-active .ghost-btn.danger { color:#ffb1c3; border-color:#82405a; background:#2a1720; }
body.zx-active button:disabled { opacity:.52; filter:saturate(.45); cursor:not-allowed; }
body.zx-active .budget-select-all,
body.zx-active .badge { color:#d9ecfb; border-color:#3b5266; background:#172432; }
body.zx-active .budget-row-selected,
body.zx-active tbody tr:hover { background:#182532 !important; }

/* Gradiente da marca Zyntra aplicado somente ao ponto de contato do chat. */
body.zx-active .chat-launcher {
  border-color:rgba(255,112,170,.7);
  background:linear-gradient(135deg,#ff477a 0%,#e42d83 43%,#aa36ca 100%);
  box-shadow:0 14px 30px rgba(222,45,128,.32),0 0 0 1px rgba(255,255,255,.06) inset;
}
body.zx-active .chat-launcher::after { background:linear-gradient(125deg,rgba(255,255,255,.2),transparent 38%); }
body.zx-active .chat-launcher:hover { border-color:#ffb4cc; box-shadow:0 18px 36px rgba(222,45,128,.45),0 0 0 3px rgba(255,60,117,.12); }

/* Acionador compacto: apenas o símbolo, com profundidade e halo discreto. */
body.zx-active .chat-launcher {
  width:52px;
  min-width:52px;
  height:52px;
  min-height:52px;
  justify-content:center;
  padding:0;
  border:1px solid rgba(176,55,88,.7);
  border-radius:16px;
  color:#f7fbff;
  background:radial-gradient(circle at 38% 25%,#552135 0%,#29151f 42%,#090a0e 100%);
  box-shadow:0 12px 26px rgba(0,0,0,.62),0 0 22px rgba(166,35,77,.28),inset 0 1px 0 rgba(255,255,255,.1);
}
body.zx-active .chat-launcher span { display:none; }
body.zx-active .chat-launcher svg { width:24px; height:24px; filter:drop-shadow(0 2px 4px rgba(0,0,0,.5)); }
body.zx-active .chat-launcher:hover {
  transform:translateY(-3px) scale(1.03);
  border-color:#ee789d;
  background:radial-gradient(circle at 38% 25%,#6a2942 0%,#341722 43%,#090a0e 100%);
  box-shadow:0 17px 30px rgba(0,0,0,.68),0 0 30px rgba(202,46,98,.42),inset 0 1px 0 rgba(255,255,255,.14);
}

/* Conteúdo do chat no mesmo sistema visual do painel principal. */
body.zx-active .chat-float-panel .panel {
  border:1px solid #303b4a;
  border-radius:14px;
  background:#12161d;
  box-shadow:0 24px 56px rgba(0,0,0,.62);
}
body.zx-active .chat-float-panel .panel-title {
  border-bottom-color:#2d3745;
  background:linear-gradient(90deg,#141a22,#101319);
  color:#edf6ff;
}
body.zx-active .chat-title-copy { display:inline-flex; align-items:center; gap:8px; font-weight:400; }
body.zx-active .chat-title-copy svg { width:19px; height:19px; fill:none; stroke:#3bc5ff; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
body.zx-active .chat-float-panel,
body.zx-active .chat-float-panel button,
body.zx-active .chat-float-panel strong { font-weight:400; }
body.zx-active #fila,
body.zx-active #fila * { font-weight:400; }
body.zx-active #previa,
body.zx-active #previa * { font-weight:400; }
body.zx-active .chat-float-panel .panel-body { background:#12161d; }
body.zx-active .chat-float-panel .chat-quick-actions { gap:8px; }
body.zx-active .chat-float-panel .chat-quick-actions .ghost-btn {
  min-height:32px;
  padding:6px 10px;
  border-color:#315d75;
  border-radius:7px;
  color:#c9ebfc;
  background:#14222d;
  font-size:12px;
  box-shadow:none;
}
body.zx-active .chat-float-panel .chat-quick-actions .ghost-btn:hover { border-color:#55caff; background:#193545; color:#f4fbff; }
body.zx-active .chat-float-panel .chat-messages {
  border:1px solid #303b4a;
  border-radius:10px;
  background:#0e1218;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
}
body.zx-active .chat-float-panel .chat-message {
  border:1px solid #303b4a;
  color:#dbe7f4;
  background:#171d25;
  box-shadow:none;
}
body.zx-active .chat-float-panel .chat-message.assistant { border-left-color:#39c5ff; background:#14202a; }
body.zx-active .chat-float-panel .chat-message.user { border-left-color:#b83b65; background:#221923; }
body.zx-active .chat-float-panel .chat-message strong { color:#7edbff; }
body.zx-active .chat-float-panel .chat-message p { color:#d8e2ee; }
body.zx-active .chat-float-panel .chat-compose textarea {
  min-height:76px;
  border-color:#354354;
  border-radius:9px;
  color:#e8f0f8;
  background:#0d1117;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
}
body.zx-active .chat-float-panel .chat-compose textarea:focus { border-color:#49c8ff; box-shadow:0 0 0 3px rgba(59,197,255,.12); }
body.zx-active .chat-float-panel .chat-compose .run-btn {
  min-width:94px;
  border:1px solid rgba(255,122,170,.52);
  border-radius:9px;
  background:linear-gradient(160deg,#b7204c,#60182b 72%,#171015 100%);
  box-shadow:0 10px 20px rgba(92,18,43,.32);
}
body.zx-active .chat-float-panel .chat-compose .run-btn:hover { filter:brightness(1.12); box-shadow:0 13px 25px rgba(164,29,69,.42); }

/* Ações principais adotam o mesmo acabamento preto/vinho do acionador do chat. */
body.zx-active .run-btn,
body.zx-active .upload-btn,
body.zx-active .previa-btn,
body.zx-active .chat-float-panel .chat-compose .run-btn {
  border:1px solid rgba(176,55,88,.72);
  color:#f9fbff;
  background:radial-gradient(circle at 38% 20%,#572034 0%,#2c1520 46%,#090a0e 100%);
  box-shadow:0 9px 20px rgba(0,0,0,.46),0 0 16px rgba(166,35,77,.16),inset 0 1px 0 rgba(255,255,255,.1);
}
body.zx-active .run-btn.secondary { background:radial-gradient(circle at 38% 20%,#572034 0%,#2c1520 46%,#090a0e 100%); }
body.zx-active .run-btn:hover,
body.zx-active .upload-btn:hover,
body.zx-active .previa-btn:hover,
body.zx-active .chat-float-panel .chat-compose .run-btn:hover {
  filter:none;
  border-color:#ef789f;
  background:radial-gradient(circle at 38% 20%,#6b2942 0%,#351722 46%,#090a0e 100%);
  box-shadow:0 12px 25px rgba(0,0,0,.55),0 0 23px rgba(202,46,98,.32),inset 0 1px 0 rgba(255,255,255,.13);
}

/* Resultados do catálogo e tabelas técnicas não herdam o branco do tema legado. */
body.zx-active .table-wrap,
body.zx-active .parts-search-results,
body.zx-active .parts-quote-items { background:#12161d; }
body.zx-active .parts-quote-table,
body.zx-active .parts-quote-items table {
  color:#dce6f1;
  border-color:#303b4a;
  background:#151a21;
}
body.zx-active .parts-quote-items thead,
body.zx-active .parts-quote-items th {
  color:#a9dfff;
  border-color:#303b4a;
  background:#10151b;
}
body.zx-active .parts-quote-items td {
  color:#dce6f1;
  border-color:#293442;
  background:#151a21;
}
body.zx-active .parts-quote-items tbody tr:nth-child(even) td { background:#171d25; }
body.zx-active .parts-quote-items tbody tr:hover td { background:#1b2b37 !important; }
body.zx-active .parts-search-results small,
body.zx-active .parts-quote-items small { color:#9caec2; }

/* Tabelas e entregas: padrão escuro, leitura compacta e sem herança clara. */
body.zx-active .report-section table,
body.zx-active #budgetTables table,
body.zx-active #deliveryReport table,
body.zx-active .instrument-panel-report table {
  color:#dce6f1;
  border-color:#303b4a;
  background:#151a21;
}
body.zx-active .report-section thead th,
body.zx-active #budgetTables thead th,
body.zx-active #deliveryReport thead th,
body.zx-active .instrument-panel-report thead th { color:#a9dfff; border-color:#303b4a; background:#10151b; }
body.zx-active .report-section td,
body.zx-active #budgetTables td,
body.zx-active #deliveryReport td,
body.zx-active .instrument-panel-report td { color:#dce6f1; border-color:#293442; background:#151a21; }
body.zx-active .report-section tbody tr:nth-child(even) td,
body.zx-active #budgetTables tbody tr:nth-child(even) td,
body.zx-active #deliveryReport tbody tr:nth-child(even) td { background:#171d25; }
body.zx-active .report-shadow-warning { color:#f1cad4 !important; border-color:#7b4053; background:#271820; }
body.zx-active .report-shadow-invariant { color:#bdebd1 !important; border-color:#2f7458; background:#13271f; }
body.zx-active .location-actions .run-btn,
body.zx-active .location-actions .upload-btn { background:radial-gradient(circle at 38% 20%,#572034 0%,#2c1520 46%,#090a0e 100%); }
body.zx-active .damage h3,
body.zx-active .report-section h3,
body.zx-active .enriched-budget-section h3 { font-size:15px; line-height:1.25; }
body.zx-active .damage p,
body.zx-active .report-section p,
body.zx-active .enriched-budget-item p { font-size:13px; line-height:1.45; }
.evaluation-details { margin-top:12px; }
.evaluation-details summary { display:inline-flex; align-items:center; min-height:34px; padding:0 11px; border:1px solid #315d75; border-radius:7px; color:#c9ebfc; background:#14222d; cursor:pointer; font-size:12px; font-weight:800; }
.evaluation-details summary:hover { border-color:#55caff; background:#193545; color:#f4fbff; }
.evaluation-details[open] summary { margin-bottom:12px; border-color:#7a3d58; color:#ffe6ed; background:#291a22; }
.enriched-evaluation-details { margin-top:10px; }
body.zx-active .zx-tl-step.is-skipped { color:#8290a4; }
body.zx-active .zx-tl-step.is-skipped .zx-tl-dot { border-style:dashed; border-color:#728196; background:#151920; }
body.zx-active .previa-detail-grid { grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:10px; }
body.zx-active .previa-detail-grid > span { min-height:74px; padding:10px; }
.previa-visual-insight { margin-top:12px; padding:12px; border:1px solid #315d75; border-radius:9px; background:#12212b; }
.previa-visual-insight small { color:#67d1ff; font-size:11px; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }
.previa-visual-insight p { margin:6px 0 0; }
.previa-panel-section { margin-top:14px; }
.previa-panel-alerts { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:10px; margin-top:12px; }
.previa-panel-alerts article { padding:12px; border:1px solid #754052; border-radius:9px; background:#20181d; }
.previa-panel-alerts h4 { margin:0 0 6px; color:#ffd8e1; font-size:14px; }
.previa-panel-alerts p { margin:5px 0; }
.previa-technical-detail { margin-top:12px; padding:10px 12px; border-left:3px solid #2db7f5; background:#101d26; }
.previa-technical-detail p { margin:6px 0; }

/* Orçamento e catálogo: leitura compacta, colunas úteis e comandos alinhados. */
body.zx-active #orcamento .panel-body,
body.zx-active #partsQuote .panel-body,
body.zx-active #previa .panel-body { gap:14px; }
body.zx-active #orcamento .budget-draft-toolbar { gap:10px; padding:13px 14px; }
body.zx-active #orcamento .budget-draft-toolbar > div:first-child strong { font-size:14px; }
body.zx-active #orcamento .budget-draft-toolbar > div:first-child p,
body.zx-active #orcamento #budgetDraftInfo { font-size:12px; line-height:1.35; }
body.zx-active #orcamento .quick-row {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(142px,1fr));
  grid-auto-rows:44px;
  align-items:stretch;
  gap:8px;
}
body.zx-active #orcamento .quick-row > * {
  box-sizing:border-box;
  width:100%;
  min-height:0;
  height:44px;
  margin:0;
  padding:6px 9px;
  justify-content:center;
  font-size:11px;
  line-height:1.15;
  font-weight:400;
}
body.zx-active #orcamento .budget-select-all { gap:7px; white-space:normal; }
body.zx-active #orcamento .budget-select-all input { flex:0 0 auto; }
body.zx-active #orcamento .budget-draft-toolbar strong,
body.zx-active #orcamento .budget-draft-toolbar button,
body.zx-active #orcamento .manual-budget-panel,
body.zx-active #orcamento .manual-budget-panel strong,
body.zx-active #orcamento .manual-budget-panel label { font-weight:400; }
body.zx-active .zyntra-dialog,
body.zx-active .zyntra-dialog-brand,
body.zx-active .zyntra-dialog label { font-weight:400; }
body.zx-active #budgetTotals { grid-template-columns:repeat(auto-fit,minmax(155px,1fr)); gap:10px; margin:10px 0 14px; }
body.zx-active #budgetTotals .finance,
body.zx-active #partsQuoteTotals .metric,
body.zx-active #previa .metric { min-height:64px; padding:10px 11px; }
body.zx-active #budgetTotals .finance small,
body.zx-active #partsQuoteTotals .metric small,
body.zx-active #previa .metric small { font-size:11px; line-height:1.15; letter-spacing:.15px; }
body.zx-active #budgetTotals .finance .value { margin-top:5px; font-size:16px; line-height:1.12; }
body.zx-active #budgetTables .table-wrap { margin-top:16px; }
body.zx-active #budgetTables .table-wrap h3 { margin:0 0 8px; font-size:15px; }
body.zx-active #budgetTables th,
body.zx-active #budgetTables td { padding:9px 6px; font-size:12px; line-height:1.25; vertical-align:top; }
body.zx-active #budgetTables th { font-size:10px; letter-spacing:.25px; }
body.zx-active #budgetTables .budget-parts-table table { min-width:1160px; table-layout:fixed; }
body.zx-active #budgetTables .budget-parts-table th:nth-child(1),
body.zx-active #budgetTables .budget-parts-table td:nth-child(1) { width:34px; }
body.zx-active #budgetTables .budget-parts-table th:nth-child(2),
body.zx-active #budgetTables .budget-parts-table td:nth-child(2) { width:42px; }
body.zx-active #budgetTables .budget-parts-table th:nth-child(3),
body.zx-active #budgetTables .budget-parts-table td:nth-child(3) { width:54px; }
body.zx-active #budgetTables .budget-parts-table th:nth-child(4),
body.zx-active #budgetTables .budget-parts-table td:nth-child(4) { width:188px; }
body.zx-active #budgetTables .budget-parts-table th:nth-child(5),
body.zx-active #budgetTables .budget-parts-table td:nth-child(5) { width:96px; }
body.zx-active #budgetTables .budget-parts-table th:nth-child(6),
body.zx-active #budgetTables .budget-parts-table td:nth-child(6) { width:78px; }
body.zx-active #budgetTables .budget-parts-table th:nth-child(7),
body.zx-active #budgetTables .budget-parts-table td:nth-child(7) { width:104px; }
body.zx-active #budgetTables .budget-parts-table th:nth-child(n+8),
body.zx-active #budgetTables .budget-parts-table td:nth-child(n+8) { width:76px; }
body.zx-active #budgetTables .budget-labor-table table { min-width:1080px; table-layout:fixed; }
body.zx-active #budgetTables .budget-labor-table th:nth-child(3),
body.zx-active #budgetTables .budget-labor-table td:nth-child(3) { width:265px; }
body.zx-active #budgetTables .budget-labor-table th:nth-child(1),
body.zx-active #budgetTables .budget-labor-table td:nth-child(1) { width:34px; }
body.zx-active #budgetTables .budget-labor-table th:nth-child(2),
body.zx-active #budgetTables .budget-labor-table td:nth-child(2) { width:52px; }
body.zx-active #budgetTables .budget-composition-table table { min-width:620px; table-layout:fixed; }
body.zx-active #budgetTables .budget-composition-table th:nth-child(1),
body.zx-active #budgetTables .budget-composition-table td:nth-child(1) { width:150px; }
body.zx-active #budgetTables .budget-composition-table th:nth-child(3),
body.zx-active #budgetTables .budget-composition-table td:nth-child(3) { width:170px; }
/* Entrega: a peça e o resumo técnico têm prioridade sobre colunas de controle. */
body.zx-active #deliveryReport .budget-parts-table table { min-width:1360px; table-layout:fixed; }
body.zx-active #deliveryReport .budget-parts-table th,
body.zx-active #deliveryReport .budget-parts-table td { padding:9px 7px; font-size:12px; line-height:1.28; vertical-align:top; }
body.zx-active #deliveryReport .budget-parts-table th { font-size:10px; }
body.zx-active #deliveryReport .budget-parts-table th:nth-child(1),
body.zx-active #deliveryReport .budget-parts-table td:nth-child(1) { width:44px; }
body.zx-active #deliveryReport .budget-parts-table th:nth-child(2),
body.zx-active #deliveryReport .budget-parts-table td:nth-child(2) { width:92px; }
body.zx-active #deliveryReport .budget-parts-table th:nth-child(3),
body.zx-active #deliveryReport .budget-parts-table td:nth-child(3) { width:210px; }
body.zx-active #deliveryReport .budget-parts-table th:nth-child(4),
body.zx-active #deliveryReport .budget-parts-table td:nth-child(4) { width:285px; }
body.zx-active #deliveryReport .budget-parts-table th:nth-child(n+5),
body.zx-active #deliveryReport .budget-parts-table td:nth-child(n+5) { width:82px; }
body.zx-active .operational-summary { display:grid; gap:4px; }
body.zx-active .operational-summary span { display:grid; grid-template-columns:96px minmax(0,1fr); gap:8px; align-items:baseline; }
body.zx-active .operational-summary small { color:#94a8bd; font-size:10px; font-weight:700; }
body.zx-active .operational-summary b { color:#edf4fb; font-size:12px; font-weight:750; }
body.zx-active #deliveryReport .structured-damages-table table { min-width:920px; table-layout:fixed; }
body.zx-active #deliveryReport .structured-damages-table th,
body.zx-active #deliveryReport .structured-damages-table td { padding:10px 8px; font-size:12px; line-height:1.3; vertical-align:top; }
body.zx-active #deliveryReport .structured-damages-table th { font-size:10px; }
body.zx-active #deliveryReport .structured-damages-table th:nth-child(1),
body.zx-active #deliveryReport .structured-damages-table td:nth-child(1) { width:220px; }
body.zx-active #deliveryReport .structured-damages-table th:nth-child(2),
body.zx-active #deliveryReport .structured-damages-table td:nth-child(2) { width:100px; }
body.zx-active #deliveryReport .structured-damages-table th:nth-child(3),
body.zx-active #deliveryReport .structured-damages-table td:nth-child(3) { width:190px; }
body.zx-active #deliveryReport .structured-damages-table th:nth-child(4),
body.zx-active #deliveryReport .structured-damages-table td:nth-child(4) { width:105px; }
body.zx-active #deliveryReport .structured-damages-table th:nth-child(5),
body.zx-active #deliveryReport .structured-damages-table td:nth-child(5) { width:86px; }
body.zx-active #partsQuote .parts-quote-block { padding:13px 14px; }
body.zx-active #partsQuote .parts-quote-block h3 { margin-bottom:10px; font-size:16px; }
body.zx-active #partsQuote label { font-size:12px; }
body.zx-active #partsQuote .metric-grid { grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; margin-top:10px; }
body.zx-active #partsQuote .metric { min-height:64px; padding:10px 11px; }
body.zx-active #partsQuote .metric strong { margin-top:5px; font-size:15px; }
body.zx-active #partsQuote .quick-row { gap:8px; }
body.zx-active #previa .muted-note { font-size:12px; line-height:1.35; }
body.zx-active #previa .parts-quote-block { padding:13px 14px; }
body.zx-active #previa .parts-quote-block h3 { margin-bottom:8px; font-size:16px; }
body.zx-active .parts-interactive-block { overflow:hidden; }
body.zx-active .parts-map-heading,
body.zx-active .parts-catalog-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:10px;
}
body.zx-active .parts-map-heading h3,
body.zx-active .parts-catalog-heading h3 { margin:0; }
body.zx-active .parts-vehicle-type-selector {
  display:inline-grid;
  grid-template-columns:repeat(2,minmax(118px,1fr));
  gap:3px;
  padding:3px;
  border:1px solid #2d4056;
  border-radius:10px;
  background:#0b111a;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 7px 18px rgba(0,0,0,.2);
}
body.zx-active .parts-vehicle-type-option {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:35px;
  border:1px solid transparent;
  border-radius:7px;
  padding:7px 12px;
  color:#9caec2;
  background:transparent;
  font:600 12px Inter,Arial,sans-serif;
  letter-spacing:.01em;
  cursor:pointer;
  transition:color .16s ease,background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
body.zx-active .parts-vehicle-type-option:hover {
  color:#eaf7ff;
  border-color:#31516b;
  background:#132130;
}
body.zx-active .parts-vehicle-type-option:focus-visible {
  outline:2px solid #55cfff;
  outline-offset:2px;
}
body.zx-active .parts-vehicle-type-option:active { transform:translateY(1px); }
body.zx-active .parts-vehicle-type-option.is-active {
  color:#061018;
  border-color:#73dcff;
  background:linear-gradient(135deg,#65d6ff,#2b9fe8);
  box-shadow:0 0 0 1px rgba(101,214,255,.18),0 5px 14px rgba(22,153,224,.3);
}
body.zx-active .parts-vehicle-type-icon {
  display:block;
  width:17px;
  height:17px;
  flex:0 0 17px;
  color:inherit;
  opacity:.9;
}
body.zx-active .parts-catalog-source {
  color:#8fa5ba;
  font-size:11px;
  line-height:1.3;
  text-align:right;
}
body.zx-active .parts-interactive-diagram { position:relative; max-width:760px; margin:0 auto; border:0; border-radius:0; background:transparent; overflow:hidden; }
body.zx-active .parts-diagram-canvas { position:relative; aspect-ratio:1/1; }
/* O PNG tem fundo transparente: torná-lo branco aqui preserva a transparência e,
   portanto, o fundo nativo do card. O filtro remove a paleta/halo neon sem
   alterar a escala ou o mapa de coordenadas dos pontos interativos. */
body.zx-active .parts-diagram-canvas img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; opacity:1; filter:grayscale(1) brightness(0) invert(1); }
body.zx-active .parts-diagram-canvas svg { position:absolute; inset:0; width:100%; height:100%; }
body.zx-active .parts-hotspot { cursor:pointer; outline:none; }
body.zx-active .parts-hotspot circle:first-child { fill:rgba(255,213,74,.08); stroke:#ffe45c; stroke-width:4; filter:drop-shadow(0 0 6px rgba(255,220,70,.9)); }
body.zx-active .parts-hotspot-dot { fill:#fff36b; stroke:#fff; stroke-width:2; }
body.zx-active .parts-hotspot text { fill:#fff36b; font:700 22px Inter,Arial,sans-serif; paint-order:stroke; stroke:#101217; stroke-width:6px; stroke-linejoin:round; }
body.zx-active .parts-hotspot:hover circle:first-child,body.zx-active .parts-hotspot:focus circle:first-child { fill:rgba(59,197,255,.25); stroke:#57d7ff; }
@media (max-width:700px) {
  body.zx-active .parts-map-heading,
  body.zx-active .parts-catalog-heading { align-items:stretch; flex-direction:column; }
  body.zx-active .parts-vehicle-type-selector { width:100%; grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.zx-active .parts-catalog-source { text-align:left; }
}
body.zx-active #previa .parts-vehicle-card { grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; margin-top:10px; }
body.zx-active #previa .metric strong { margin-top:5px; font-size:15px; line-height:1.2; }
body.zx-active #previa .previa-progress { margin-top:12px; padding:12px 14px; }
body.zx-active #previa .previa-progress-heading { font-size:14px; }
@media (max-width:760px) {
  body.zx-active #orcamento .quick-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.zx-active #budgetTotals { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:1100px) { .zx-action { padding:0 8px; font-size:10px; } }

/* Foto amplia enquanto o clique permanece pressionado; ao soltar, desaparece. */
body.zx-active #thumbGrid .thumb img { cursor:zoom-in; }
.zx-hold-image-preview {
  position:fixed;
  z-index:150;
  inset:0;
  display:grid;
  place-items:center;
  padding:28px;
  background:rgba(3,5,8,.78);
  opacity:0;
  transition:opacity .12s ease;
  cursor:zoom-out;
}
.zx-hold-image-preview[hidden] { display:none; }
.zx-hold-image-preview.is-open { opacity:1; }
.zx-hold-image-preview img {
  display:block;
  max-width:min(94vw,1400px);
  max-height:88vh;
  border:1px solid #49586c;
  border-radius:12px;
  background:#0a0d12;
  box-shadow:0 28px 72px rgba(0,0,0,.72),0 0 0 4px rgba(59,197,255,.08);
  object-fit:contain;
  user-select:none;
  -webkit-user-drag:none;
}

/* Tipografia de leitura: conteúdo sem negrito; hierarquia reservada a títulos e rótulos. */
body.zx-active .workspace .tab-panel :where(
  p,
  li,
  td,
  dd,
  strong,
  b,
  .v,
  .value,
  .metric strong,
  .card strong,
  .finance-card strong,
  .kpi-metric-line strong,
  .operational-summary b
) {
  font-weight:400 !important;
}

body.zx-active .workspace .tab-panel :where(
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  .panel-title,
  th,
  summary,
  label
) {
  font-weight:600 !important;
}

body.zx-active .workspace .tab-panel :where(
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  .panel-title,
  th,
  summary,
  label
) :where(strong, b, span) {
  font-weight:600 !important;
}

/* Comparativo local v66: remove todo negrito do front principal.
   A classe no <html> deixa o teste reversível e não alcança /autovistoria/. */
html.zx-no-bold-preview body,
html.zx-no-bold-preview body *,
html.zx-no-bold-preview body::before,
html.zx-no-bold-preview body::after {
  font-weight:400 !important;
}
