/* Aplicações: componentes próprios, compactos e com estado operacional explícito. */
.apPagina{display:grid;gap:14px;min-width:0}.apPagina.oculto{display:none}
.apCab,.apLinha,.apRodape{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.apCab>div,.apLinha>div{min-width:0}.apCab h2,.apCartao h2,.apCartao h3{margin:0;font-size:18px;overflow-wrap:anywhere}
.apCab p,.apCartao p{margin:5px 0 0}.apAcoes{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.apAcoes a{text-decoration:none}.apTexto{font-size:12px;line-height:1.55;color:var(--ink-3);overflow-wrap:anywhere}
.apCartao{border:1px solid var(--line);background:var(--surface);padding:16px;min-width:0;border-radius:6px}
.apLista{display:grid;gap:10px}.apCartao .apLista{margin-top:12px}.apNome{font-weight:650;overflow-wrap:anywhere}
.apItem{padding:10px 0;border-bottom:1px solid var(--line);min-width:0}.apItem:last-child{border-bottom:0}
.apNota{padding:10px 12px;border:1px solid var(--line);border-left:3px solid var(--accent-ink);background:var(--surface-2);font-size:12px;line-height:1.55;overflow-wrap:anywhere}
.apNota.ruim{border-left-color:var(--crit)}.apNota.vazio{border-style:dashed;border-left-width:1px;text-align:center;padding:22px 14px}
.apGrade{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.apGrade .campo{margin:0}
.apResumo{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0 0}.apResumo dt{font-size:11px;color:var(--ink-3)}.apResumo dd{margin:5px 0 0;font-size:13px;overflow-wrap:anywhere}
.apAbas{display:flex;gap:4px;padding:4px;border:1px solid var(--line);background:var(--surface);overflow-x:auto}
.apAbas button{flex:none;border:0;border-bottom:2px solid transparent;padding:8px 12px;background:none;color:var(--ink-3);font:inherit;cursor:pointer}
.apAbas button[aria-selected=true]{border-bottom-color:var(--accent-ink);background:var(--surface-2);color:var(--ink);font-weight:600}
.apPagina button:focus-visible,.apPagina a:focus-visible,.apDialogo button:focus-visible{outline:2px solid var(--accent-ink);outline-offset:2px}
.apBusca{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.apBusca .campo{margin:0;flex:1 1 200px;max-width:380px}
.apRodape{border-top:1px solid var(--line);padding-top:12px;margin-top:12px;font-size:12px;color:var(--ink-3)}
.apCodigo{display:block;white-space:pre-wrap;overflow-wrap:anywhere;max-height:290px;overflow:auto;background:var(--surface-2);border:1px solid var(--line);padding:12px;font:12px/1.6 var(--mono);color:var(--ink);margin:12px 0}
.apPagina textarea,.apDialogo textarea{max-width:100%;min-height:90px}.apPagina textarea.apEditor{min-height:260px;font:12px/1.6 var(--mono)}
.apEstado{max-width:100%;font:10px/1.5 var(--mono);letter-spacing:.03em;text-transform:uppercase;padding:3px 7px;background:var(--surface-2);border:1px solid var(--line);overflow-wrap:anywhere}
.apEstado.ok{color:var(--good);border-color:var(--good);background:var(--good-soft)}.apEstado.ruim{color:var(--crit);border-color:var(--crit)}
.apOculto{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.apCheck{display:flex;align-items:center;gap:8px;font-size:12px;line-height:1.5;margin:8px 0}.apCheck input{width:16px;height:16px;margin:0;accent-color:var(--accent-ink)}
.apDialogo .campo{margin-bottom:12px}.apDialogo .apNota{margin:10px 0}.apDialogo pre,.apDialogo code{overflow-wrap:anywhere;white-space:pre-wrap}
.apUnica{border:1px solid var(--line);border-left:3px solid var(--accent-ink);padding:12px;margin:12px 0;background:var(--surface-2)}
.apUnica textarea{font:12px/1.5 var(--mono);width:100%;min-height:70px}.apCompacto{margin-top:10px}.apArquivo{display:flex;gap:10px;align-items:center;justify-content:space-between;min-width:0}.apArquivo>span{overflow-wrap:anywhere}
@media(max-width:720px){.apGrade,.apResumo{grid-template-columns:minmax(0,1fr)}.apCartao{padding:12px}.apAbas button{padding:8px 10px}.apCab{align-items:flex-start}.apCodigo{max-height:230px}.apAcoes{gap:7px}.apLinha{align-items:flex-start}.apRodape{align-items:flex-start}}
@media(prefers-reduced-motion:no-preference){.apCartao{animation:apEntrada .16s ease-out}@keyframes apEntrada{from{opacity:.6;transform:translateY(3px)}to{opacity:1;transform:none}}}
