:root{--border:#dde3ea;--text:#1e293b;--muted:#64748b;--primary:#2563eb;--primary-dark:#1d4ed8;--bg:#ecf0f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-size:15px}.app{max-width:1400px;margin:0 auto;padding:32px}.app__header{background:linear-gradient(135deg,#2563eb 0%,#1d4ed8 100%);border-bottom:none;border-radius:0 0 14px 14px;justify-content:space-between;align-items:flex-start;margin:-32px -32px 24px;padding:28px 32px;display:flex;box-shadow:0 2px 8px #2563eb40}.app__header h1{color:#fff;margin:0;font-size:28px;font-weight:800}.app__subtitle{color:#ffffffd9;margin:6px 0 0;font-size:15px}.app__header .btn--ghost{color:#fff;background:#ffffff26;border:1px solid #fff6}.app__header .btn--ghost:hover{background:#ffffff40}.app__filebar{border:1px solid var(--border);background:#fff;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;padding:12px 16px;display:flex;box-shadow:0 1px 3px #0000000f}.app__filename{color:var(--text);font-size:16px;font-weight:700}.model-tabs{gap:4px;display:flex}.model-tab{border:1px solid var(--border);cursor:pointer;color:var(--muted);background:#fff;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:500;transition:all .12s;display:flex}.model-tab:hover:not(:disabled){color:var(--primary);border-color:var(--primary);background:#eff6ff}.model-tab--active{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:700}.model-tab--active:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.model-tab--disabled{opacity:.4;cursor:not-allowed}.model-tab__count{background:#0000001f;border-radius:10px;padding:1px 8px;font-size:12px;font-weight:700}.model-tab--active .model-tab__count{background:#ffffff38}.app__body{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:16px;display:grid}.dropzone{border:2px dashed var(--border);text-align:center;cursor:pointer;background:#fff;border-radius:12px;padding:56px 24px;transition:all .15s}.dropzone--active{border-color:var(--primary);background:#eff6ff}.dropzone--disabled{opacity:.5;pointer-events:none}.dropzone__icon{font-size:40px}.dropzone__title{margin-top:12px;font-size:17px;font-weight:600}.dropzone__hint{color:var(--muted);margin-top:6px;font-size:14px}.summary{flex-wrap:wrap;gap:14px;margin-bottom:16px;display:flex}.summary__card{border:1px solid var(--border);background:#fff;border-top:3px solid;border-radius:8px;min-width:120px;padding:12px 16px;box-shadow:0 1px 3px #00000014}.summary__value{font-size:27px;font-weight:700}.summary__label{color:var(--muted);margin-top:2px;font-size:13px}.summary__card:first-child{border-top-color:#3b82f6}.summary__card:first-child .summary__value{color:#3b82f6}.summary__card:nth-child(2){border-top-color:#0ea5e9}.summary__card:nth-child(2) .summary__value{color:#0ea5e9}.summary__card:nth-child(3){border-top-color:#6366f1}.summary__card:nth-child(3) .summary__value{color:#6366f1}.summary__card:nth-child(4){border-top-color:#10b981}.summary__card:nth-child(4) .summary__value{color:#10b981}.summary__card:nth-child(5){border-top-color:#f59e0b}.summary__card:nth-child(5) .summary__value{color:#f59e0b}.summary__card:nth-child(6){border-top-color:#ef4444}.summary__card:nth-child(6) .summary__value{color:#ef4444}.grid-wrap{border:1px solid var(--border);background:#fff;border-radius:8px;overflow:auto hidden;box-shadow:0 1px 3px #00000014}.grid{border-collapse:collapse;width:100%;font-size:14px}.grid thead th{background:var(--primary);text-align:left;letter-spacing:.02em;color:#fff;border-bottom:1px solid var(--primary-dark);white-space:nowrap;padding:10px;font-size:13px;font-weight:600;position:sticky;top:0}.grid__rownum{text-align:center;width:34px;color:var(--muted)}.grid__row{cursor:pointer;border-bottom:1px solid #f1f5f9}.grid__row:hover{outline:1px solid var(--primary);outline-offset:-1px;opacity:.85}.grid__row--selected{outline:1px solid var(--primary);outline-offset:-1px;background:#eff6ff}.grid__row--bloqueio .grid__rownum{color:#c0392b}.grid__cell{text-overflow:ellipsis;white-space:nowrap;max-width:160px;color:inherit;border-right:1px solid #f1f5f9;padding:9px 10px;overflow:hidden}.grid__input{border:1px solid var(--primary);border-radius:4px;width:100%;padding:4px;font-size:13px}.legend{border-top:1px solid var(--border);color:var(--muted);background:#fafbfc;flex-wrap:wrap;align-items:center;gap:14px;padding:10px 12px;font-size:12px;display:flex}.legend__item{align-items:center;gap:6px;display:inline-flex}.legend__swatch{border:1px solid;border-radius:3px;width:14px;height:14px;display:inline-block}.legend__hint{margin-left:auto;font-style:italic}.inspect{border:1px solid var(--border);background:#fff;border-radius:8px;padding:16px;position:sticky;top:16px;box-shadow:0 1px 3px #00000014}.inspect--empty{color:var(--muted);font-size:14px}.inspect__head{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.inspect__title{font-weight:700}.inspect__sub{color:var(--muted);margin-top:2px;font-size:13px}.inspect__close{cursor:pointer;color:var(--muted);background:0 0;border:none;font-size:22px;line-height:1}.inspect h4{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);margin:14px 0 6px;font-size:13px}.inspect__raw{border:1px solid var(--border);white-space:pre-wrap;word-break:break-word;background:#f6f8fa;border-radius:8px;max-height:260px;padding:10px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;overflow:auto}.mark{background:#ffe28a;border-radius:2px;padding:0 2px}.inspect__issues{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.inspect__issues li{border-bottom:1px solid #eef1f4;padding-bottom:8px;font-size:13px}.inspect__badge{border-radius:10px;padding:1px 7px;font-size:11px;font-weight:600}.inspect__msg{color:var(--muted);margin-top:3px}.inspect__ok{color:#1e7a48;font-size:14px}.btn{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:8px;padding:9px 16px;font-size:14px;font-weight:600}.btn--primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--primary-dark);border-color:var(--primary-dark)}.btn--primary:disabled{opacity:.5;cursor:not-allowed}.btn--ghost{color:var(--muted)}.banner{border-radius:8px;margin-bottom:16px;padding:12px 16px;font-size:14px}.banner--error{color:#c0392b;background:#fdf2f2;border:1px solid #e0a0a0}.upload-stage{padding:24px 0}.upload-pair{gap:20px;display:flex}.upload-step{flex:1}.upload-step__label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;font-size:12px;font-weight:700;display:block}.upload-actions{margin-top:20px}.upload-actions__hint{color:var(--muted);margin-bottom:12px;font-size:14px}.upload-actions__btns{gap:10px;display:flex}.items-loaded{color:#1e7a48;font-size:14px;font-weight:600}.items-hint{color:var(--muted);font-size:14px;font-style:italic}.cards-wrap{border:1px solid var(--border);background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #00000014}.card{cursor:pointer;border-bottom:1px solid #f1f5f9;transition:background .1s}.card:last-child{border-bottom:none}.card:hover{background:#f8fafc}.card--selected{background:#eff6ff}.card__head{align-items:center;gap:10px;padding:12px 14px 8px;display:flex}.card__badge{text-align:center;min-width:28px;color:var(--muted);font-size:18px;font-weight:700}.card__title{color:var(--text);flex:1;font-size:14px;font-weight:600}.card__arrow{color:var(--muted);font-size:20px;line-height:1}.card__fields{background:#f1f5f9;grid-template-columns:1fr 1fr;gap:1px;padding:0 0 1px;display:grid}.card__field{background:#fff;padding:8px 14px}.card__label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:3px;font-size:11px;font-weight:600;display:block}.card__value{word-break:break-word;border-radius:4px;min-height:22px;padding:2px 6px;font-size:14px;display:block}.card__value--editable{cursor:pointer}.card__value--editable:active{opacity:.75}.card__input{border:1px solid var(--primary);border-radius:4px;width:100%;padding:6px 8px;font-size:14px}.inspect-overlay{z-index:900;background:#00000073;position:fixed;inset:0}.inspect--modal{z-index:901;border:1px solid var(--border);background:#fff;border-radius:20px 20px 0 0;padding:20px 16px 32px;position:fixed;inset:10vh 0 0;overflow-y:auto;box-shadow:0 -4px 24px #0000002e}.inspect--modal .inspect__close{padding:4px;font-size:28px}@media (width<=900px){.app__body{grid-template-columns:1fr}.model-tabs{-webkit-overflow-scrolling:touch;flex-shrink:0;padding-bottom:2px;overflow-x:auto}.app__filebar{flex-wrap:wrap}}@media (width<=768px){.app{padding:16px}.app__header{margin:-16px -16px 20px;padding:18px 16px}.app__header h1{font-size:20px}.app__subtitle{font-size:13px}.upload-pair{flex-direction:column;gap:12px}.dropzone{padding:36px 16px}}@media (width<=600px){.summary{gap:8px}.summary__card{flex:0 0 calc(50% - 4px);min-width:calc(50% - 4px);padding:10px 12px}.summary__value{font-size:22px}.card__fields{grid-template-columns:1fr}}@media (pointer:coarse){.btn{min-height:44px;padding:12px 18px}.model-tab{min-height:44px;padding:10px 14px}}.concil{background:#fff;border:1px solid #d1d5db;border-radius:8px;margin:12px 0;padding:12px 16px}.concil__bar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.concil__hint{color:#6b7280;flex:260px;font-size:13px}.concil__note{color:#b45309;margin-top:8px;font-size:13px}.concil__cards{flex-wrap:wrap;gap:8px;margin:12px 0 4px;display:flex}.concil__card{border:1px solid #e5e7eb;border-radius:6px;min-width:110px;padding:6px 12px}.concil__card--warn{background:#fffbeb;border-color:#fcd34d}.concil__card--ok{background:#f0fdf4;border-color:#bbf7d0}.concil__value{font-size:20px;font-weight:600}.concil__label{color:#6b7280;font-size:12px}.concil__total{margin:8px 0}.concil__section{margin-top:8px}.concil__section summary{cursor:pointer;font-weight:600}.concil__empty{color:#6b7280;margin:4px 0 0}.concil__table{border-collapse:collapse;width:100%;margin-top:6px;font-size:13px}.concil__table th,.concil__table td{text-align:left;border-bottom:1px solid #e5e7eb;padding:4px 8px}.concil__dot{border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}.concil__dot--amarelo{background:#ff0;border:1px solid #ca8a04}.concil__dot--laranja{background:#ff8c00}.concil__card--bad{color:#b91c1c;background:#fef2f2;border-color:#fca5a5}.concil__row--down td{color:#b91c1c;font-weight:600}.concil__option{border:1px solid #e5e7eb;border-radius:6px;flex-wrap:wrap;gap:16px;margin:8px 0;display:flex}.concil__option label{align-items:center;gap:6px;display:flex}.nfp{--nfp-bg:#fff;--nfp-fg:#1f2933;--nfp-muted:#6b7280;--nfp-line:#e5e7eb;--nfp-primary:#0f766e;--nfp-pend:#fde2e1;--nfp-pend-fg:#b42318;--nfp-edit:#ffedd5;--nfp-edit-fg:#9a3412;--nfp-ok-fg:#067647;color:var(--nfp-fg);background:var(--nfp-bg);gap:16px;font:14px/1.45 system-ui,-apple-system,Segoe UI,sans-serif;display:grid}@media (prefers-color-scheme:dark){.nfp{--nfp-bg:#111827;--nfp-fg:#e5e7eb;--nfp-muted:#9ca3af;--nfp-line:#374151;--nfp-pend:#451a1a;--nfp-pend-fg:#fca5a5;--nfp-edit:#431407;--nfp-edit-fg:#fdba74;--nfp-ok-fg:#6ee7b7;--nfp-primary:#14b8a6}}.nfp h2{margin:0 0 4px;font-size:18px}.nfp-muted{color:var(--nfp-muted);margin:0}.nfp-head{flex-wrap:wrap;justify-content:space-between;gap:16px;display:flex}.nfp-counters{gap:20px;margin:0;display:flex}.nfp-counters dt{color:var(--nfp-muted);font-size:12px}.nfp-counters dd{font-variant-numeric:tabular-nums;margin:0;font-size:22px;font-weight:600}.nfp-counters .is-pend{color:var(--nfp-pend-fg)}.nfp-counters .is-ok{color:var(--nfp-ok-fg)}.nfp-counters .is-err{color:var(--nfp-pend-fg)}.nfp-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.nfp-bulk{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.nfp-bulk[aria-disabled=true] span{color:var(--nfp-muted)}.nfp-input{border:1px solid var(--nfp-line);color:inherit;font:inherit;background:0 0;border-radius:6px;min-width:0;padding:7px 10px}.nfp-input[type=search]{width:min(340px,100%)}.nfp-input--nf{font-variant-numeric:tabular-nums;width:130px}.nfp-input:focus{outline:2px solid var(--nfp-primary);outline-offset:1px}.nfp-btn{border:1px solid var(--nfp-line);color:inherit;font:inherit;cursor:pointer;background:0 0;border-radius:6px;padding:7px 14px}.nfp-btn:disabled{opacity:.45;cursor:not-allowed}.nfp-btn--primary{background:var(--nfp-primary);border-color:var(--nfp-primary);color:#fff;font-weight:600}.nfp-link{color:var(--nfp-primary);cursor:pointer;font:inherit;background:0 0;border:0;padding:0 0 0 8px;text-decoration:underline}.nfp-table-wrap{border:1px solid var(--nfp-line);border-radius:8px;overflow-x:auto}.nfp-table{border-collapse:collapse;width:100%}.nfp-table th,.nfp-table td{border-bottom:1px solid var(--nfp-line);text-align:left;vertical-align:top;padding:8px 10px}.nfp-table th{color:var(--nfp-muted);background:var(--nfp-bg);font-size:12px;font-weight:600;position:sticky;top:0}.nfp-table tr.is-selected td{background:color-mix(in srgb, var(--nfp-primary) 8%, transparent)}.nfp-col-check{width:32px}.nfp-num{font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right!important}.nfp-client{font-weight:600}.nfp-sub{color:var(--nfp-muted);font-size:12px}.nfp-cell{border-radius:6px;flex-direction:column;gap:2px;padding:2px;display:flex}.nfp-cell--pend .nfp-input{background:var(--nfp-pend);border-color:#0000}.nfp-cell--ok .nfp-input{background:var(--nfp-edit);color:var(--nfp-edit-fg);border-color:#0000}.nfp-cell--err .nfp-input{border-color:var(--nfp-pend-fg)}.nfp-cell--nao{color:var(--nfp-muted);flex-direction:row;align-items:center;font-style:italic}.nfp-hint{color:var(--nfp-pend-fg);font-size:12px}.nfp-hint--warn{color:var(--nfp-edit-fg)}.nfp-msg{border-radius:6px;margin:0;padding:8px 12px}.nfp-msg--ok{background:color-mix(in srgb, var(--nfp-ok-fg) 12%, transparent)}.nfp-msg--erro{background:var(--nfp-pend);color:var(--nfp-pend-fg)}.nfp-confirm{border:1px solid var(--nfp-edit-fg);background:var(--nfp-edit);border-radius:8px;padding:12px 16px}.nfp-confirm p{margin:0 0 10px}.nfp-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}
