/* =====================================================================
   Administração (GRD/RH) — mesma família visual, ênfase em clareza operacional
   ===================================================================== */
.admin-banner { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; background: var(--color-status-parcial-bg); color: var(--color-status-parcial); font-size: .84375rem; font-weight: 600; }
.admin-banner svg { width: 18px; height: 18px; flex: none; }

.stat-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.stat { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 12px; padding: 10px 12px; display: grid; gap: 2px; text-align: left; color: inherit; font: inherit; transition: transform var(--duration-instant) var(--ease-standard); }
button.stat:active { transform: scale(.985); }
.stat__value { font-size: 1.375rem; font-weight: 800; font-variant-numeric: tabular-nums; letter-spacing: -.02em; overflow-wrap: anywhere; }
.stat__label { font-size: .78125rem; color: var(--color-text-muted); line-height: 1.3; }
.stat--warn .stat__value { color: var(--color-status-provisorio); }
.stat--danger .stat__value { color: var(--color-status-erro); }
.stat--ok .stat__value { color: var(--color-status-confirmado); }
@media (min-width: 768px) { .stat-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .stat-grid--wide { grid-template-columns: repeat(5, minmax(0, 1fr)); } }

/* ImportStepper */
.stepper { display: flex; gap: 6px; overflow-x: auto; padding: 2px 0; margin: 0; list-style: none; scrollbar-width: none; }
.stepper::-webkit-scrollbar { display: none; }
.step { flex: none; display: flex; align-items: center; gap: 6px; padding: 6px 12px 6px 6px; border-radius: var(--radius-pill); background: var(--color-surface); border: 1px solid var(--color-border); font-size: .78125rem; font-weight: 600; color: var(--color-text-muted); transition: color var(--duration-base), border-color var(--duration-base), background-color var(--duration-base); }
.step__n { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; background: var(--color-surface-sunken); font-size: .75rem; }
.step--done { color: var(--color-status-confirmado); }
.step--done .step__n { background: var(--color-status-confirmado-bg); }
.step--current { color: var(--color-brand-interactive); border-color: var(--color-brand-interactive); }
.step--current .step__n { background: var(--color-brand-interactive); color: #fff; }

/* UploadPreview */
.upload-zone {
  display: grid; justify-items: center; gap: 10px; text-align: center; padding: 28px 16px; border-radius: var(--radius-lg); width: 100%;
  border: 2px dashed var(--color-border-strong); background: var(--color-surface); color: var(--color-text-muted); cursor: pointer;
  transition: border-color var(--duration-fast) var(--ease-standard), background-color var(--duration-fast);
}
.upload-zone:focus-within { border-color: var(--color-focus); }
.upload-zone svg { width: 40px; height: 40px; color: var(--color-brand-interactive); }
.upload-zone--over { border-color: var(--color-brand-interactive); background: var(--color-status-parcial-bg); }
.upload-zone__title { font-size: 1rem; font-weight: 700; color: var(--color-text); }
.file-card { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; align-items: center; padding: 12px; border-radius: 12px; background: var(--color-surface-sunken); animation: m-enter var(--duration-base) var(--ease-standard) both; }
.file-card > svg { width: 32px; height: 32px; color: var(--color-brand-interactive); grid-row: span 4; }
.hash { font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; font-size: .75rem; overflow-wrap: anywhere; color: var(--color-text-muted); }
.progress { height: 8px; border-radius: var(--radius-pill); background: var(--color-surface-sunken); overflow: hidden; }
.progress__fill { height: 100%; width: 100%; transform-origin: left; transform: scaleX(0); background: var(--color-brand-interactive); transition: transform 120ms linear; }
.progress--indeterminate .progress__fill { width: 35%; transform: none; animation: indeterminate 1.1s var(--ease-standard) infinite; }
@keyframes indeterminate { from { margin-left: -35%; } to { margin-left: 100%; } }
.progress-list { display: grid; gap: 8px; list-style: none; margin: 0; padding: 0; }
.progress-list li { display: flex; gap: 10px; align-items: flex-start; font-size: .875rem; animation: m-enter var(--duration-base) var(--ease-standard) both; }
.progress-list svg { width: 20px; height: 20px; flex: none; color: var(--color-status-confirmado); margin-top: 1px; }

/* ValidationWarning / grupos de validação */
.vgroup { display: grid; gap: 8px; }
.vgroup__head { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: .9375rem; }
.vgroup__count { margin-left: auto; font-variant-numeric: tabular-nums; }
.vgroup--critical .vgroup__head { color: var(--color-status-erro); }
.vgroup--warn .vgroup__head { color: var(--color-status-provisorio); }
.vgroup--ok .vgroup__head { color: var(--color-status-confirmado); }
.vgroup__head svg { width: 18px; height: 18px; }

.item { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 14px; padding: 12px 14px; display: grid; gap: 8px; }
.item--block { border-left: 4px solid var(--color-status-erro); }
.item--warn { border-left: 4px solid var(--color-status-provisorio); }
.item--ok { border-left: 4px solid var(--color-status-confirmado); }
.item__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.item__title { font-weight: 700; font-size: .9375rem; }
.item__vals { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; font-size: .8125rem; }
.item__vals div { display: grid; gap: 1px; min-width: 0; }
.item__vals span:first-child { font-size: .6875rem; color: var(--color-text-muted); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.item__vals span:last-child { font-weight: 700; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.item__msg { font-size: .8125rem; color: var(--color-text-muted); line-height: 1.4; }
.item__foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.decision-chip { display: inline-flex; align-items: center; gap: 6px; font-size: .78125rem; font-weight: 700; padding: 4px 10px; border-radius: var(--radius-pill); background: var(--color-surface-sunken); color: var(--color-text-muted); }
.decision-chip--explicit { background: var(--color-status-parcial-bg); color: var(--color-status-parcial); }
.decision-chip--error { background: var(--color-status-erro-bg); color: var(--color-status-erro); }

.radio-card { display: flex; gap: 10px; align-items: flex-start; padding: 12px; border-radius: 12px; border: 1.5px solid var(--color-border); cursor: pointer; transition: border-color var(--duration-fast), background-color var(--duration-fast); }
.radio-card input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--color-brand-interactive); flex: none; }
.radio-card:has(input:checked) { border-color: var(--color-brand-interactive); background: var(--color-status-parcial-bg); }
.radio-card__title { font-weight: 700; font-size: .90625rem; }
.radio-card__text { font-size: .8125rem; color: var(--color-text-muted); }
.radio-group { display: grid; gap: 8px; }

.issue { display: grid; gap: 4px; padding: 10px 0; border-bottom: 1px solid var(--color-border); font-size: .84375rem; }
.issue:last-child { border-bottom: 0; }
.issue__where { font-family: ui-monospace, Consolas, monospace; font-size: .75rem; color: var(--color-text-muted); }
details.card > summary { cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 8px; font-weight: 700; min-height: 32px; }
details.card > summary::-webkit-details-marker { display: none; }
details.card > summary::after { content: "\25BE"; color: var(--color-text-muted); transition: transform var(--duration-base) var(--ease-standard); }
details.card[open] > summary::after { transform: rotate(180deg); }
details.card[open] > summary { margin-bottom: 10px; }

.publish-bar { background: var(--color-surface); border: 2px solid var(--color-brand-interactive); border-radius: var(--radius-lg); box-shadow: var(--shadow-2); padding: 14px; display: grid; gap: 10px; scroll-margin-top: calc(var(--header-h) + 16px); }
.jump { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 12px; border-radius: 12px; background: var(--color-surface); border: 1px solid var(--color-border); font-size: .84375rem; }

.table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: 12px; border: 1px solid var(--color-border); }
.table { width: 100%; border-collapse: collapse; font-size: .84375rem; min-width: 560px; background: var(--color-surface); }
.table th, .table td { padding: 9px 10px; border-bottom: 1px solid var(--color-border); text-align: left; vertical-align: top; }
.table th { font-size: .71875rem; text-transform: uppercase; letter-spacing: .04em; color: var(--color-text-muted); background: var(--color-surface-sunken); }
.table td.num, .table th.num { text-align: right; font-variant-numeric: tabular-nums; }
.table tr:last-child td { border-bottom: 0; }

.code-box { font-family: ui-monospace, Consolas, monospace; font-size: 1.875rem; font-weight: 800; letter-spacing: .12em; text-align: center; padding: 16px; border-radius: 14px; background: var(--color-surface-sunken); border: 1px dashed var(--color-border-strong); user-select: all; overflow-wrap: anywhere; }
.toolbar { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.toolbar .input, .toolbar .select { flex: 1; min-width: 160px; }
.pill { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 6px; background: var(--color-surface-sunken); font-size: .75rem; font-weight: 700; color: var(--color-text-muted); margin: 2px 4px 2px 0; }
.grid-2 { display: grid; gap: 12px; }
@media (min-width: 768px) { .grid-2 { grid-template-columns: 1fr 1fr; } }
.done-panel { display: grid; justify-items: center; text-align: center; gap: 12px; padding: 28px 16px; }
.done-panel__title { font-size: 1.25rem; font-weight: 800; }
