.tx { color: var(--ink); }
.tx h2, .tx h3, .tx h4 { margin: 0 0 12px; }
.tx-cab { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:20px; }
.tx-cab p, .tx-meta, .tx small { color:var(--muted); }
.tx small { display:block; margin-top:4px; overflow-wrap:anywhere; }
.tx-filtros { display:flex; flex-wrap:wrap; gap:12px; align-items:end; margin:16px 0; }
.tx label { display:flex; flex-direction:column; gap:4px; font-size:13px; }
.tx input, .tx select { min-height:44px; min-width:0; max-width:100%; color:var(--ink); background:var(--bg); border:1px solid var(--line); padding:8px; border-radius:8px; }
.tx .btn, .tx-link { min-height:44px; }
.tx :focus-visible { outline:2px solid var(--ds-accent); outline-offset:3px; }
.tx-lista { border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.tx-linha { display:grid; grid-template-columns:minmax(140px,1fr) 130px 56px 140px minmax(120px,1fr) auto; gap:12px; align-items:center; padding:12px; border-bottom:1px solid var(--line); }
.tx-linha:last-child { border-bottom:0; }
.tx-linha:hover { background:var(--panel-2); }
.tx-linha p { margin:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tx-link { background:none; border:0; padding:0; color:var(--ink); text-decoration:underline; cursor:pointer; text-align:left; font:inherit; }
.tx-num { text-align:right; font-variant-numeric:tabular-nums; }
.tx-acoes { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:16px; }
.tx-detalhe, .tx-vazio, .tx-aviso, .tx-erro { padding:20px; border:1px solid var(--line); border-radius:8px; margin:16px 0; background:var(--panel); }
.tx-erro { border-color:var(--ds-err); }
.tx-texto { white-space:pre-wrap; overflow-wrap:anywhere; max-width:80ch; }
.tx-skeleton { display:grid; gap:12px; }
.tx-skeleton div { height:64px; border-radius:8px; background:var(--line); }
@media(max-width:1100px) { .tx-linha { grid-template-columns:1fr 1fr; } .tx-linha p { grid-column:1/-1; } .tx-num { text-align:left; } }
@media(max-width:600px) { .tx-cab { align-items:start; flex-direction:column; } .tx-filtros { display:grid; grid-template-columns:1fr 1fr; } .tx-filtros label { min-width:0; } .tx-filtros label:nth-last-of-type(1) { grid-column:1/-1; } .tx-linha { display:flex; flex-direction:column; align-items:stretch; } .tx-linha p { white-space:normal; } .tx-acoes .btn { flex:1; } }
