/* Estilos extraídos de style="…" (Fase 6C-1), para a CSP style-src 'self'.
   Zona gerada: scripts/extrair-estilos.mjs. Zona manual: depois de </gerado>, à mão.
   Seletor dobrado (.st-x.st-x) para vencer, como o style= inline vencia, regras de uma classe só. */
/* <gerado> */
.st-008883f.st-008883f { display: flex; justify-content: center; flex-wrap: nowrap; white-space: nowrap; border-top: 1px solid #7a1010; border-bottom: 1px solid #7a1010; padding: 4px 0; margin: 8px 0; font-size: 9pt; gap: 8px; font-family: 'Spectral', Georgia, serif; break-inside: avoid; page-break-inside: avoid; }
.st-0149762.st-0149762 { background: transparent; color: #7a1010; border-bottom: 2px solid #7a1010; padding: 0 0 6px 0; margin-bottom: 6px; }
.st-020d929.st-020d929 { width: 48px; height: 36px; object-fit: cover; border-radius: 3px; border: 1px solid var(--border); flex-shrink: 0; }
.st-02f08a9.st-02f08a9 { display: none; padding: 2px 8px; font-size: 11px; height: 24px; align-items: center; gap: 4px; }
.st-0333266.st-0333266 { width: 100%; margin-top: 6px; }
.st-050f0c2.st-050f0c2 { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; cursor: pointer; user-select: none; margin-bottom: 0; }
.st-06743e0.st-06743e0 { font-family: var(--font-ui); font-size: 13px; font-weight: bold; min-width: 16px; text-align: center; color: var(--text-hi); }
.st-073caa7.st-073caa7 { font-family: var(--font-ui); font-size: 13px; color: var(--text-mid); margin: 0 0 10px 0; }
.st-0966186.st-0966186 { margin-left: auto; display: flex; gap: 6px; align-items: center; margin-right: 8px; }
.st-0a8b08c.st-0a8b08c { padding: 1.5rem; display: flex; flex-direction: column; gap: 12px; }
.st-117b555.st-117b555 { display: flex; align-items: center; gap: 6px; justify-content: space-between; }
.st-12fcdaa.st-12fcdaa { margin-bottom: 8px; border-top: 1px solid rgba(200, 150, 60, 0.12); padding-top: 8px; font-size: 10px; color: var(--text-mid); }
.st-1a5db87.st-1a5db87 { justify-content: flex-end; display: flex; gap: 10px; padding: 1rem 1.5rem; }
.st-1b108a8.st-1b108a8 { display: flex; align-items: center; gap: 6px; background: rgba(0,0,0,0.15); padding: 2px 6px; border-radius: 4px; border: 1px solid rgba(200, 150, 60, 0.08); }
.st-1b33d5b.st-1b33d5b { font-style: italic; cursor: pointer; padding: 4px; text-align: center; }
.st-1bd4b9f.st-1bd4b9f { margin-bottom: 1.25rem; }
.st-1beb64f.st-1beb64f { cursor: pointer; padding: 2px 4px; border-radius: 4px; }
.st-1cfd784.st-1cfd784 { font-size: 10px; color: var(--text-dim); }
.st-1f4b216.st-1f4b216 { margin-bottom: 1.2rem; page-break-inside: auto; break-inside: auto; -webkit-column-break-inside: auto; background: transparent !important; border: none !important; box-shadow: none !important; padding: 0 !important; }
.st-204b18f.st-204b18f { display: flex; align-items: center; justify-content: space-between; }
.st-224624c.st-224624c { padding: 1px 6px; font-size: 11px; height: 20px; line-height: 1; }
.st-23cee08.st-23cee08 { font-size: 12px; margin-top: 4px; color: var(--text-mid); line-height: 1.35; }
.st-27a209c.st-27a209c { width: 75px; font-size: 11px; padding: 2px 4px; height: 24px; }
.st-29b2150.st-29b2150 { cursor: pointer; transition: background 0.15s; border-radius: 4px; padding: 2px 4px; }
.st-2a19599.st-2a19599 { display: flex; align-items: center; justify-content: space-between; background: rgba(0,0,0,0.2); padding: 4px 8px; border-radius: var(--radius-sm); border: 1px solid rgba(200, 150, 60, 0.05); }
.st-2a371c3.st-2a371c3 { font-style: italic; cursor: pointer; padding: 6px; border-radius: 4px; text-align: center; background: rgba(0,0,0,0.03); }
.st-2b8f792.st-2b8f792 { color: var(--gold); font-size: 14px; }
.st-2d98adf.st-2d98adf { margin-bottom: 10px; }
.st-2f1f535.st-2f1f535 { font-family: 'Spectral', Georgia, serif; font-size: 8.5pt; font-style: italic; color: #4a1e1b; margin-top: 2px; }
.st-3088da1.st-3088da1 { display: flex; align-items: center; gap: 8px; }
.st-30f3d60.st-30f3d60 { grid-template-columns: repeat(4, 1fr); }
.st-3429b0c.st-3429b0c { font-family: var(--font-ui); font-size: 12px; font-weight: bold; min-width: 14px; text-align: center; color: var(--gold-light); }
.st-3459b9e.st-3459b9e { font-size: 13.5px; padding: 4px 0; line-height: 1.45; }
.st-3620a71.st-3620a71 { cursor: pointer; user-select: none; display: flex; align-items: center; gap: 4px; font-size: 11px; margin-bottom: 0; }
.st-3972227.st-3972227 { cursor: pointer; padding: 1px 3px; border-radius: 3px; }
.st-3aa9002.st-3aa9002 { background: #c8973a; }
.st-3ab8fd5.st-3ab8fd5 { font-size: 11px; color: var(--text-mid); margin-top: 3px; line-height: 1.3; }
.st-3b41ff7.st-3b41ff7 { color: var(--gold-light); font-size: 11px; font-style: italic; }
.st-3bf1d80.st-3bf1d80 { border-top: 1.5px solid #7a1010; padding-top: 5px; margin-top: 6px; font-family: 'Spectral', Georgia, serif; font-size: 9.5pt; color: #1a0f0f; line-height: 1.4; text-align: justify; }
.st-3eaa7b5.st-3eaa7b5 { margin-bottom: 4px; }
.st-4066b27.st-4066b27 { cursor: pointer; padding: 2px 4px; border-radius: 4px; display: block; transition: background 0.15s; }
.st-410c3f8.st-410c3f8 { font-style: italic; padding: 10px; }
.st-41d4f2e.st-41d4f2e { justify-content: space-between; display: flex; }
.st-42caa0b.st-42caa0b { display: flex; flex-direction: column; gap: 8px; border-top: 1px solid rgba(200, 150, 60, 0.12); padding-top: 8px; empty-cells: hide; }
.st-43b108b.st-43b108b { line-height: 1.65; margin-bottom: 8px; }
.st-441f1bd.st-441f1bd { accent-color: var(--gold); width: 12px; height: 12px; }
.st-45a53cf.st-45a53cf { color: var(--gold-light); }
.st-4991671.st-4991671 { font-size: 28px; color: var(--text-dim); display: block; margin-bottom: 8px; }
.st-49e4866.st-49e4866 { margin-top: 5px; }
.st-4ceeede.st-4ceeede { background: var(--bg-card); font-weight: bold; color: var(--gold-light); font-size: 12px; padding: 4px 8px; text-align: center; }
.st-4f539e6.st-4f539e6 { padding: 4px 6px; height: 24px; display: inline-flex; align-items: center; justify-content: center; }
.st-4f576f9.st-4f576f9 { background: #7a1010; }
.st-4feedf8.st-4feedf8 { margin-bottom: 6px; }
.st-4ffbd93.st-4ffbd93 { display: flex; align-items: center; gap: 6px; font-size: 12.5px; font-family: var(--font-ui); cursor: pointer; user-select: none; margin-bottom: 0; }
.st-516abf2.st-516abf2 { justify-content: flex-end; display: flex; }
.st-52005ad.st-52005ad { font-family: var(--font-ui); font-size: 12px; color: var(--text-mid); }
.st-527cd53.st-527cd53 { color: var(--text-dim); }
.st-52dff0f.st-52dff0f { display: flex; gap: 5px; align-items: center; }
.st-54a2fce.st-54a2fce { display: flex; align-items: center; gap: 6px; margin-top: 5px; }
.st-55a70da.st-55a70da { flex-grow: 1; }
.st-56aee39.st-56aee39 { font-size: 13.5px; padding: 4px 0; line-height: 1.45; cursor: pointer; }
.st-574a192.st-574a192 { padding: 2rem 0; text-align: center; color: var(--text-dim); font-style: italic; }
.st-5a15a85.st-5a15a85 { font-size: 14px; margin-left: -2px; }
.st-5a27c75.st-5a27c75 { display: none; align-items: center; gap: 8px; }
.st-5e23c5d.st-5e23c5d { display: flex; gap: 12px; align-items: center; background: var(--bg-input); border: 1px solid var(--border); padding: 5px 10px; border-radius: var(--radius-md); height: 38px; }
.st-5e3e762.st-5e3e762 { padding: 4px 8px; display: inline-flex; align-items: center; gap: 4px; }
.st-5e9bdf0.st-5e9bdf0 { font-size: 10px; color: var(--gold-dim-texto); }
.st-60f47ff.st-60f47ff { padding: 1px 5px; font-size: 11px; }
.st-611e1a6.st-611e1a6 { font-size: 12.5px; font-family: var(--font-ui); color: var(--text-hi); }
.st-63d0208.st-63d0208 { background: var(--bg-input); border: 1px solid var(--border); padding: 12px; border-radius: var(--radius-md); display: flex; flex-direction: column; gap: 12px; margin-bottom: 1.25rem; }
.st-67c656b.st-67c656b { gap: 8px; cursor: move; }
.st-693434c.st-693434c { display: flex; gap: 8px; }
.st-69d66e5.st-69d66e5 { width: 100%; }
.st-6c1e6a9.st-6c1e6a9 { margin-bottom: 3px; }
.st-718f1a0.st-718f1a0 { display: flex; gap: 4px; flex-shrink: 0; }
.st-71d92d7.st-71d92d7 { margin-top: 10px; font-size: 13.5px; line-height: 1.45; }
.st-72a68ac.st-72a68ac { text-align: center; }
.st-744734e.st-744734e { text-decoration: underline; }
.st-761352b.st-761352b { background: #1a1510; }
.st-7a45943.st-7a45943 { font-size: 12px; }
.st-7e2379b.st-7e2379b { display: flex; align-items: center; width: 100%; }
.st-81e7208.st-81e7208 { display: flex; flex-direction: column; gap: 4px; flex-grow: 1; }
.st-8296a85.st-8296a85 { font-style: normal; color: #7a1010; font-weight: bold; }
.st-83212d0.st-83212d0 { margin-bottom: 0; cursor: pointer; }
.st-8410c98.st-8410c98 { cursor: pointer; }
.st-87b0cf4.st-87b0cf4 { cursor: pointer; user-select: none; display: flex; align-items: center; gap: 4px; font-size: 10px; }
.st-88d5903.st-88d5903 { font-style: italic; cursor: pointer; padding: 2px 4px; }
.st-899db40.st-899db40 { margin: 8px 0; }
.st-899e706.st-899e706 { font-size: 13px; display: flex; align-items: center; gap: 6px; }
.st-8ad8908.st-8ad8908 { gap: 8px 12px; }
.st-8fcf4d2.st-8fcf4d2 { font-family: 'Spectral', Georgia, serif; font-size: 9.5pt; color: #1a0f0f; line-height: 1.4; }
.st-90746ca.st-90746ca { margin-left: auto; transition: transform 0.2s; }
.st-90b37d2.st-90b37d2 { margin-left: auto; display: inline-flex; gap: 4px; font-size: 11px; margin-right: 8px; }
.st-95515de.st-95515de { padding: 6px 10px; font-size: 11px; }
.st-957a40c.st-957a40c { color: var(--gold-light); margin-bottom: 8px; display: flex; align-items: center; gap: 6px; }
.st-993ee1f.st-993ee1f { font-size: 9px; color: var(--gold-light); }
.st-9a4ded0.st-9a4ded0 { font-size: 12px; padding: 4px 8px; }
.st-9df3c68.st-9df3c68 { flex-grow: 1; height: 24px; font-size: 12px; background: var(--bg-input); border: 1px solid var(--border-campo); color: var(--text-hi); padding: 0 6px; border-radius: var(--radius-sm); outline: none; }
.st-9dfef7f.st-9dfef7f { padding: 2px 8px; font-size: 11px; height: 24px; align-items: center; gap: 4px; }
.st-9e0b43d.st-9e0b43d { width: 65px; height: 18px; font-size: 11px; background: var(--bg-input); border: none; border-bottom: 1px dashed var(--gold); color: var(--text-hi); padding: 0 4px; text-align: center; outline: none; }
.st-9e7697f.st-9e7697f { cursor: pointer; padding: 2px 4px; border-radius: 4px; transition: background 0.15s; }
.st-a5fe453.st-a5fe453 { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.st-aaf1661.st-aaf1661 { display: flex; align-items: center; gap: 4px; font-size: 11px; font-family: var(--font-ui); cursor: pointer; user-select: none; margin-bottom: 0; }
.st-ac1ea11.st-ac1ea11 { background: #2e6b2e; }
.st-ad356bb.st-ad356bb { font-family: var(--font-ui); font-size: 12px; font-weight: bold; color: var(--gold-light); flex-grow: 1; }
.st-aee80d0.st-aee80d0 { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; padding: 8px; border-bottom: 1px solid rgba(200,150,60,0.08); }
.st-b11630e.st-b11630e { font-size: 2rem; display: block; margin-bottom: 8px; opacity: 0.4; }
.st-b2396ea.st-b2396ea { display: flex; align-items: center; gap: 4px; margin-left: 8px; }
.st-b29d724.st-b29d724 { display: inline-flex; align-items: center; gap: 4px; flex-wrap: wrap; font-size: 12.5px; font-family: var(--font-ui); color: var(--text-hi); }
.st-b3ac11a.st-b3ac11a { display: flex; align-items: baseline; gap: 10px; width: 100%; flex-wrap: wrap; }
.st-b4d802f.st-b4d802f { accent-color: var(--gold); }
.st-b4edaa7.st-b4edaa7 { display: flex; align-items: center; }
.st-bdc3f56.st-bdc3f56 { width: 55px; height: 24px; font-size: 11px; background: var(--bg-input); border: 1px solid var(--border-campo); color: var(--text-hi); border-radius: var(--radius-sm); }
.st-be8da06.st-be8da06 { width: 70px; }
.st-bfecf38.st-bfecf38 { cursor: pointer; padding: 1px 3px; border-radius: 3px; display: inline-block; }
.st-c0a2a33.st-c0a2a33 { color: var(--gold-dim-texto); font-size: 10px; font-weight: bold; text-transform: uppercase; }
.st-c17b57c.st-c17b57c { font-family: var(--font-ui); font-size: 12px; font-weight: bold; color: var(--text-mid); }
.st-c1bbb0d.st-c1bbb0d { font-size: 9px; color: var(--gold-dim-texto); }
.st-c3146e0.st-c3146e0 { font-family: var(--font-ui); font-size: 15px; font-weight: bold; min-width: 20px; text-align: center; color: var(--text-hi); }
.st-c322f59.st-c322f59 { margin-top: 6px; font-family: 'Spectral', Georgia, serif; font-size: 9pt; color: #1a0f0f; line-height: 1.4; }
.st-c3bbbba.st-c3bbbba { justify-content: space-between; }
.st-c4a2b8b.st-c4a2b8b { margin-top: 10px; margin-bottom: 1.5rem; }
.st-c71373e.st-c71373e { margin-top: 4px; }
.st-c9ba30e.st-c9ba30e { color: var(--text-dim); display: block; margin-bottom: 6px; }
.st-cd68eaa.st-cd68eaa { width: 38px; height: 20px; background: var(--bg-input); border: 1px solid var(--border-campo); color: var(--text-hi); font-size: 11px; text-align: center; border-radius: var(--radius-sm); }
.st-cdc34a9.st-cdc34a9 { font-size: 10px; }
.st-d139ae6.st-d139ae6 { font-size: 13px; padding: 2px 8px; }
.st-d2f87c7.st-d2f87c7 { display: flex; gap: 4px; }
.st-d3f6a7f.st-d3f6a7f { justify-content: flex-end; display: flex; gap: 6px; }
.st-d89e3ab.st-d89e3ab { transition: transform 0.2s; }
.st-dc271cf.st-dc271cf { max-width: 600px; }
.st-def7210.st-def7210 { font-family: 'Tormenta', 'Cinzel', serif; font-size: 14pt; font-weight: bold; color: #7a1010; text-shadow: none; text-transform: lowercase; line-height: 1.15; flex: 1; min-width: 0; overflow-wrap: break-word; word-break: break-word; }
.st-df7e073.st-df7e073 { display: flex; align-items: center; gap: 4px; }
.st-e215573.st-e215573 { display: flex; align-items: center; gap: 8px; background: var(--bg-input); border: 1px solid var(--border); padding: 4px 8px; border-radius: var(--radius-sm); height: 30px; }
.st-e2fbf14.st-e2fbf14 { background: #ffffff; border-color: #999; }
.st-e3e75f3.st-e3e75f3 { white-space: nowrap; font-size: 11px; }
.st-e9f7b51.st-e9f7b51 { font-size: 13.5px; margin-bottom: 6px; line-height: 1.45; border-bottom: 1.5px solid #d4c0ab; padding-bottom: 6px; cursor: pointer; }
.st-eefff2f.st-eefff2f { font-size: 13px; }
.st-f001e5f.st-f001e5f { flex-grow: 1; display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.st-f0b24ee.st-f0b24ee { margin-bottom: 1.5rem; }
.st-f2892a2.st-f2892a2 { display: none; }
.st-f330bea.st-f330bea { color: var(--text-dim); font-size: 9px; font-weight: bold; }
.st-f414324.st-f414324 { font-family: 'Tormenta', 'Cinzel', serif; font-size: 9.5pt; font-weight: bold; color: #f6efe8; background: #7a1010; padding: 2px 12px 3px; border-radius: 6px; letter-spacing: 0.03em; white-space: nowrap; flex-shrink: 0; align-self: center; margin-left: auto; }
.st-f4cba06.st-f4cba06 { background: #1c3a8c; }
.st-f59017e.st-f59017e { height: 250px; font-family: monospace; font-size: 12px; resize: vertical; }
.st-f73250e.st-f73250e { display: flex; align-items: center; gap: 6px; font-size: 11px; margin: 6px 0; cursor: pointer; }
.st-f817d65.st-f817d65 { border: 1px solid var(--border); padding: 12px; border-radius: var(--radius-md); background: var(--bg-input); margin-top: 10px; margin-bottom: 1.25rem; }
.st-f8a52bd.st-f8a52bd { line-height: 1.65; margin-bottom: 8px; border-top: 1px dashed rgba(200, 150, 60, 0.15); padding-top: 4px; }
.st-faa1db4.st-faa1db4 { cursor: pointer; padding: 1px 3px; border-radius: 3px; display: inline-block; transition: background 0.15s; }
.st-fb9057b.st-fb9057b { display: flex; align-items: center; gap: 10px; }
.st-fc0661f.st-fc0661f { padding: 5px 8px; font-size: 12px; }
.st-fd59821.st-fd59821 { font-size: 13.5px; line-height: 1.45; }
.st-fd97f3d.st-fd97f3d { display: flex; align-items: center; justify-content: space-between; background: var(--bg-input); border: 1px solid var(--border); padding: 8px 12px; border-radius: var(--radius-sm); }
.st-ffc2bb5.st-ffc2bb5 { color: var(--text-dim); font-size: 11px; }
/* </gerado> */

/* ===== manual ===== */
.ficha-ataque-conj.ficha-ataque-conj { color: var(--text-dim); font-weight: normal; font-size: 13px; }
.pericia-total { font-size: 11px; font-weight: bold; min-width: 26px; text-align: right; }
.pericia-total.pericia-total-treinada { color: var(--gold-light); }
.pericia-total.pericia-total-destreinada { color: var(--text-dim); }

/* Títulos do Diagramador/Bestiário (eram style= em gerarHtmlItemBestiario). (0,3,0)/(0,4,0) vencem print.css :30–42. */
.bestiario-titulo-bloco { margin-bottom: 0.5rem; padding-bottom: 0.3rem; border-bottom: 2px solid #7a1010; }
.bestiario-titulo-bloco.bestiario-titulo-h1 { column-span: all; -webkit-column-span: all; margin-top: 2rem; }
.bestiario-titulo-bloco.bestiario-titulo-h2 { margin-top: 1.5rem; }
.bestiario-titulo-bloco.bestiario-titulo-h3 { margin-top: 1rem; }
.bestiario-titulo-bloco .bestiario-titulo-texto { font-family: 'Tormenta', 'Cinzel', serif; color: #7a1010; margin: 0; letter-spacing: 0.05em; text-transform: lowercase; }
.bestiario-titulo-bloco.bestiario-titulo-h1 .bestiario-titulo-texto { font-size: 26pt; }
.bestiario-titulo-bloco.bestiario-titulo-h2 .bestiario-titulo-texto { font-size: 18pt; }
.bestiario-titulo-bloco.bestiario-titulo-h3 .bestiario-titulo-texto { font-size: 14pt; }
/* Na prévia da tela, style.css :2358–2370 usa #diagramador-live-preview (1,1,0)/(1,1,1), que o style= vencia:
   mesmas declarações com o id na frente, para vencer de novo. */
#diagramador-live-preview .bestiario-titulo-bloco { margin-bottom: 0.5rem; padding-bottom: 0.3rem; border-bottom: 2px solid #7a1010; }
#diagramador-live-preview .bestiario-titulo-bloco.bestiario-titulo-h1 { column-span: all; -webkit-column-span: all; margin-top: 2rem; }
#diagramador-live-preview .bestiario-titulo-bloco.bestiario-titulo-h2 { margin-top: 1.5rem; }
#diagramador-live-preview .bestiario-titulo-bloco.bestiario-titulo-h3 { margin-top: 1rem; }
#diagramador-live-preview .bestiario-titulo-bloco .bestiario-titulo-texto { font-family: 'Tormenta', 'Cinzel', serif; color: #7a1010; margin: 0; letter-spacing: 0.05em; text-transform: lowercase; }
#diagramador-live-preview .bestiario-titulo-bloco.bestiario-titulo-h1 .bestiario-titulo-texto { font-size: 26pt; }
#diagramador-live-preview .bestiario-titulo-bloco.bestiario-titulo-h2 .bestiario-titulo-texto { font-size: 18pt; }
#diagramador-live-preview .bestiario-titulo-bloco.bestiario-titulo-h3 .bestiario-titulo-texto { font-size: 14pt; }

/* Wrapper da prévia que ocupa todas as colunas (título h1, imagem full/página). */
.preview-span-all { column-span: all; -webkit-column-span: all; }

/* Selects de escala/ND do template Bando (eram .style.* em render.js). */
.sel-mini { font-size: 10px; background: var(--bg-card); color: var(--text-hi); border: 1px solid var(--border-campo); border-radius: 3px; padding: 1px 3px; outline: none; }
.sel-mini.sel-mini-escala { margin-left: 6px; }
.sel-mini.sel-mini-nd { margin-left: 4px; }

/* 6C-2: grades de 2 colunas que viram 1 no celular. Eram .st-19a2e43/.st-576dfae, cujo seletor dobrado vencia a media query. */
.grade-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; }
.caixa-grade-2col { background: var(--bg-input); border: 1px solid var(--border); padding: 12px; border-radius: var(--radius-md); display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; margin-bottom: 1.25rem; }
@media (max-width: 600px) {
  .grade-2col, .caixa-grade-2col { grid-template-columns: 1fr; }
}

/* Relatório de erro local (js/ui/relatorioErro.js) */
.relatorio-erro-texto { width: 100%; box-sizing: border-box; min-height: 220px; font-family: ui-monospace, Consolas, monospace; font-size: 12px; white-space: pre-wrap; overflow-wrap: anywhere; overflow: auto; resize: vertical; }
.relatorio-erro-status { min-height: 1.4em; margin-top: 8px; font-size: 13px; }
.relatorio-erro-botoes { flex-wrap: wrap; }

/* Restaurar backup / Cópias de segurança (js/ui/previaRestauracao.js, js/ui/painelCopias.js) */
.previa-modal { width: 90%; max-width: 680px; max-height: 90vh; overflow: auto; box-sizing: border-box; padding: 20px 24px; }
.previa-origem { margin: 0 0 8px; overflow-wrap: anywhere; }
.previa-resumo { margin: 0 0 10px; padding-left: 18px; }
.previa-aviso { margin: 0 0 10px; color: var(--gold-light); }
.previa-subtitulo { margin: 12px 0 6px; font-size: 14px; color: var(--gold); }
.previa-sem-conflito { margin: 8px 0; color: var(--text-mid); }
.previa-atalhos { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0; }
.previa-conflitos { max-height: 40vh; overflow: auto; display: grid; gap: 10px; padding-right: 4px; }
.previa-conflito, .previa-modo { border: 1px solid var(--border-campo); border-radius: var(--radius-sm); padding: 8px 10px; margin: 0; background: var(--bg-input); min-width: 0; }
.previa-conflito-nome { padding: 0 6px; font-weight: 600; color: var(--text-hi); overflow-wrap: anywhere; }
.previa-opcao { display: flex; align-items: flex-start; gap: 8px; padding: 6px 4px; min-height: 24px; cursor: pointer; }
.previa-opcao input { margin-top: 3px; flex: none; }
.previa-opcao-texto { display: grid; gap: 2px; min-width: 0; }
.previa-opcao-rotulo { color: var(--text-hi); }
.previa-opcao-detalhe { font-size: 12.5px; color: var(--text-dim); overflow-wrap: anywhere; }
.previa-conflito-diff { font-size: 12px; color: var(--text-dim); margin-top: 2px; }
.previa-botoes { flex-wrap: wrap; }
.copias-aviso { margin: 0 0 10px; font-size: 13px; color: var(--text-mid); overflow-wrap: anywhere; }
.copias-lista { display: grid; gap: 8px; max-height: 45vh; overflow: auto; padding-right: 4px; }
.copias-item { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; border: 1px solid var(--border-campo); border-radius: var(--radius-sm); padding: 8px 10px; background: var(--bg-input); }
.copias-info { display: grid; gap: 2px; min-width: 0; }
.copias-titulo { color: var(--text-hi); }
.copias-detalhe { font-size: 12.5px; color: var(--text-dim); overflow-wrap: anywhere; }
.copias-acoes { display: flex; flex-wrap: wrap; gap: 6px; }
.copias-vazio, .copias-erro { margin: 8px 0; color: var(--text-mid); }
.copias-status { min-height: 1.4em; margin-top: 8px; font-size: 13px; color: var(--gold-light); }
@media (max-width: 600px) {
  .previa-modal { width: 96%; padding: 14px 12px; }
}

/* Último backup (js/ui/indicadorBackup.js) */
.codice-ultimo-backup { align-self: center; font-size: 12.5px; color: var(--text-dim); margin-right: 4px; }

/* Filtros e ordem do Códice (index.html #codice-filtros) */
.codice-filtros { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px 12px; padding: 10px 1.5rem; border-bottom: 1px solid rgba(200, 150, 60, 0.1); background: var(--bg-input); }
.codice-filtro { display: grid; gap: 2px; font-size: 12px; color: var(--text-mid); min-width: 0; }
.codice-filtro select { min-width: 110px; max-width: 100%; }
.codice-contagem { margin-left: auto; align-self: center; font-size: 12.5px; color: var(--text-dim); }
@media (max-width: 600px) {
  .codice-filtros { padding: 10px 12px; }
  .codice-filtro { flex: 1 1 45%; }
  .codice-contagem { margin-left: 0; flex-basis: 100%; }
}

/* Conferir com a tabela (js/views/painelConferencia.js) */
.conferencia { margin: 8px 0; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-md); }
.conferencia:has(.conferencia-resumo[data-nivel="fora"]) { border-color: var(--red-light); }
.conferencia:has(.conferencia-resumo[data-nivel="atencao"]) { border-color: var(--gold-dim); }
.conferencia-titulo { cursor: pointer; padding: 8px 12px; min-height: 24px; color: var(--text-mid); font-size: 13px; }
.conferencia-titulo i { color: var(--gold); margin-right: 4px; }
.conferencia-resumo { color: var(--text-hi); font-weight: 600; }
.conferencia-corpo { padding: 0 12px 10px; overflow-x: auto; }
.conf-tabela { width: 100%; border-collapse: collapse; font-size: 13px; }
.conf-tabela th, .conf-tabela td { padding: 4px 6px; text-align: right; border-bottom: 1px solid var(--border); color: var(--text-hi); }
.conf-tabela thead th { color: var(--text-mid); font-size: 12px; }
.conf-tabela tbody th { color: var(--text-mid); font-weight: 600; }
.conf-tabela thead th:first-child, .conf-tabela tbody th { text-align: left; }
.conf-tabela .badge { white-space: nowrap; }
.conf-desvio { white-space: normal; }
.conf-num { white-space: nowrap; }
.conf-sem-dado, .conf-vazio { color: var(--text-dim); font-size: 12px; }
.conf-dica { margin: 8px 0 0; color: var(--text-mid); font-size: 12px; }
@media (max-width: 600px) {
  .conf-tabela { font-size: 12px; }
  .conf-tabela th, .conf-tabela td { padding: 4px 3px; }
}

/* Desfazer/Refazer na identidade: no celular só o ícone (320 px não comporta 4 botões com texto) */
@media (max-width: 600px) {
  .quick-actions-identidade .rotulo-btn { display: none; }
  .sec-title:has(.quick-actions-identidade) { flex-wrap: wrap; } /* sem espaço, os botões descem em vez de estourar a tela */
}
