* { box-sizing: border-box; margin: 0; }
body { font-family: system-ui, sans-serif; background: #fafafa; color: #1e1e1e; }
.app { max-width: 760px; margin: 40px auto; padding: 0 16px; }
h1 { margin-bottom: 18px; }
.linha-form { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr auto; gap: 8px; margin-bottom: 18px; }
input, select, button { padding: 9px 10px; border: 1px solid #ccc; border-radius: 6px; font: inherit; background: #fff; }
button { background: #0b8457; color: #fff; border: 0; font-weight: 600; cursor: pointer; }
button:hover { background: #09724b; }
.filtros { margin-bottom: 14px; display: flex; gap: 16px; align-items: center; }
.filtros label { font-size: .92rem; color: #444; display: flex; gap: 6px; align-items: center; }
.filtros input, .filtros select { width: auto; }
table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid #e5e5e5; border-radius: 8px; overflow: hidden; }
th, td { padding: 9px 12px; text-align: left; border-bottom: 1px solid #eee; font-size: .95rem; }
th.num, td.num { text-align: right; font-variant-numeric: tabular-nums; }
tfoot td { font-weight: 700; border-bottom: 0; background: #f6f6f4; }
.remover { background: none; border: 0; color: #c0392b; cursor: pointer; font-size: .85rem; }
