/* ═══════════════════════════════════════════════════════════
   IR·Rural — Estilos do Dashboard DIRPF Produtor Rural
   Arquivo: ir-rural.css
   Todos os estilos escopados em #irpr-app
   ═══════════════════════════════════════════════════════════ */

/* ── Variáveis ─────────────────────────────────────────── */
#irpr-app {
  --irpr-navy:        #0d2b4e;
  --irpr-navy-light:  #163d6e;
  --irpr-navy-dark:   #081c33;
  --irpr-orange:      #e85d04;
  --irpr-orange-hover:#c44d02;
  --irpr-orange-light:#fff3ec;
  --irpr-bg:          #f0f2f5;
  --irpr-surface:     #ffffff;
  --irpr-border:      #dce1ea;
  --irpr-border-dark: #b8c1cf;
  --irpr-text:        #1a2535;
  --irpr-text-muted:  #6b7a94;
  --irpr-text-light:  #9aa5b8;
  --irpr-green:       #1a9e5c;
  --irpr-green-bg:    #eaf7f1;
  --irpr-red:         #d93025;
  --irpr-red-bg:      #fdf0ef;
  --irpr-blue:        #1967d2;
  --irpr-blue-bg:     #e8f0fe;
  --irpr-yellow:      #e37400;
  --irpr-yellow-bg:   #fef7e0;

  --irpr-radius-sm:   4px;
  --irpr-radius:      8px;
  --irpr-radius-lg:   12px;
  --irpr-radius-xl:   16px;

  --irpr-shadow-sm:   0 1px 3px rgba(13,43,78,.10), 0 1px 2px rgba(13,43,78,.06);
  --irpr-shadow:      0 4px 12px rgba(13,43,78,.12), 0 2px 4px rgba(13,43,78,.07);
  --irpr-shadow-lg:   0 8px 24px rgba(13,43,78,.15), 0 4px 8px rgba(13,43,78,.08);

  --irpr-font-sans:   'DM Sans', 'Segoe UI', system-ui, sans-serif;
  --irpr-font-mono:   'DM Mono', 'Courier New', monospace;

  --irpr-topbar-h:    60px;
  --irpr-statusbar-h: 36px;
  --irpr-transition:  .18s ease;

  font-family:  var(--irpr-font-sans);
  color:        var(--irpr-text);
  background:   var(--irpr-bg);
  line-height:  1.5;
  -webkit-font-smoothing: antialiased;
  box-sizing:   border-box;
}

#irpr-app *,
#irpr-app *::before,
#irpr-app *::after {
  box-sizing: inherit;
}

/* ── Reset de elementos comuns ─────────────────────────── */
#irpr-app h1,
#irpr-app h2,
#irpr-app h3,
#irpr-app p {
  margin: 0;
}

#irpr-app button {
  font-family: inherit;
  cursor: pointer;
}

#irpr-app input,
#irpr-app select {
  font-family: inherit;
}

/* ══════════════════════════════════════════════════════════
   TOPBAR
   ══════════════════════════════════════════════════════════ */
#irpr-app .irpr-topbar {
  position:        sticky;
  top:             0;
  z-index:         100;
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  gap:             16px;
  height:          var(--irpr-topbar-h);
  padding:         0 24px;
  background:      var(--irpr-navy);
  box-shadow:      0 2px 8px rgba(0,0,0,.25);
}

#irpr-app .irpr-topbar__brand {
  display:     flex;
  align-items: center;
  gap:         12px;
  flex-shrink: 0;
}

#irpr-app .irpr-topbar__logo {
  display:     flex;
  align-items: center;
  gap:         8px;
}

#irpr-app .irpr-topbar__brand-name {
  font-size:   18px;
  font-weight: 700;
  color:       #fff;
  letter-spacing: -.3px;
}

#irpr-app .irpr-topbar__dot {
  color: var(--irpr-orange);
}

#irpr-app .irpr-topbar__ano {
  font-family: var(--irpr-font-mono);
  font-size:   13px;
  color:       rgba(255,255,255,.55);
  padding:     2px 8px;
  border:      1px solid rgba(255,255,255,.15);
  border-radius: var(--irpr-radius-sm);
}

#irpr-app .irpr-topbar__actions {
  display:     flex;
  align-items: center;
  gap:         8px;
  flex-wrap:   wrap;
}

/* ── Dropzones na topbar ───────────────────────────────── */
#irpr-app .irpr-dropzone {
  position:   relative;
  display:    inline-flex;
  align-items: center;
}

#irpr-app .irpr-dropzone__input {
  position: absolute;
  width:    1px;
  height:   1px;
  opacity:  0;
  overflow: hidden;
  clip:     rect(0,0,0,0);
}

#irpr-app .irpr-dropzone--drag-over .irpr-btn {
  background:  rgba(232,93,4,.25);
  border-color: var(--irpr-orange);
  color:       #fff;
}

/* ── Botões ────────────────────────────────────────────── */
#irpr-app .irpr-btn {
  display:         inline-flex;
  align-items:     center;
  gap:             6px;
  padding:         7px 14px;
  font-size:       13px;
  font-weight:     500;
  border-radius:   var(--irpr-radius-sm);
  border:          1px solid transparent;
  text-decoration: none;
  white-space:     nowrap;
  transition:      background var(--irpr-transition),
                   border-color var(--irpr-transition),
                   color var(--irpr-transition),
                   box-shadow var(--irpr-transition);
  cursor:          pointer;
  line-height:     1;
}

#irpr-app .irpr-btn:focus-visible {
  outline:        2px solid var(--irpr-orange);
  outline-offset: 2px;
}

#irpr-app .irpr-btn--primary {
  background:   var(--irpr-orange);
  color:        #fff;
  border-color: var(--irpr-orange);
}

#irpr-app .irpr-btn--primary:hover {
  background:   var(--irpr-orange-hover);
  border-color: var(--irpr-orange-hover);
  box-shadow:   0 2px 8px rgba(232,93,4,.35);
}

#irpr-app .irpr-btn--secondary {
  background:   rgba(255,255,255,.10);
  color:        rgba(255,255,255,.85);
  border-color: rgba(255,255,255,.20);
}

#irpr-app .irpr-btn--secondary:hover {
  background:   rgba(255,255,255,.18);
  color:        #fff;
  border-color: rgba(255,255,255,.35);
}

#irpr-app .irpr-btn--ghost {
  background:   transparent;
  color:        rgba(255,255,255,.75);
  border-color: rgba(255,255,255,.15);
}

#irpr-app .irpr-btn--ghost:hover {
  background:   rgba(255,255,255,.10);
  color:        #fff;
  border-color: rgba(255,255,255,.30);
}

#irpr-app .irpr-btn--danger {
  background:   transparent;
  color:        var(--irpr-red);
  border-color: transparent;
}

#irpr-app .irpr-btn--danger:hover {
  background:   var(--irpr-red-bg);
  border-color: var(--irpr-red);
}

#irpr-app .irpr-btn--sm {
  padding:   5px 10px;
  font-size: 12px;
}

/* Variante light (fora da topbar) */
#irpr-app .irpr-btn--secondary-light {
  background:   var(--irpr-surface);
  color:        var(--irpr-navy);
  border-color: var(--irpr-border);
}

#irpr-app .irpr-btn--secondary-light:hover {
  background:   var(--irpr-bg);
  border-color: var(--irpr-border-dark);
}

/* ── Barra de progresso ────────────────────────────────── */
#irpr-app .irpr-progress {
  position: absolute;
  bottom:   0;
  left:     0;
  right:    0;
  height:   3px;
  background: rgba(255,255,255,.10);
  overflow:  hidden;
  opacity:   0;
  transition: opacity .2s;
}

#irpr-app .irpr-progress.irpr-progress--active {
  opacity: 1;
}

#irpr-app .irpr-progress__bar {
  height:     100%;
  width:      0%;
  background: var(--irpr-orange);
  transition: width .25s ease;
}

/* ══════════════════════════════════════════════════════════
   STATUSBAR
   ══════════════════════════════════════════════════════════ */
#irpr-app .irpr-statusbar {
  display:     flex;
  align-items: center;
  gap:         0;
  height:      var(--irpr-statusbar-h);
  padding:     0 24px;
  background:  var(--irpr-navy-dark);
  font-size:   12px;
  color:       rgba(255,255,255,.55);
  overflow-x:  auto;
  scrollbar-width: none;
}

#irpr-app .irpr-statusbar::-webkit-scrollbar {
  display: none;
}

#irpr-app .irpr-statusbar__item {
  display:     inline-flex;
  align-items: center;
  gap:         4px;
  padding:     0 14px;
  white-space: nowrap;
}

#irpr-app .irpr-statusbar__item strong {
  color:       rgba(255,255,255,.85);
  font-weight: 600;
}

#irpr-app .irpr-statusbar__sep {
  color:     rgba(255,255,255,.20);
  font-size: 14px;
  flex-shrink: 0;
}

#irpr-app .irpr-statusbar__dot {
  width:         7px;
  height:        7px;
  border-radius: 50%;
  flex-shrink:   0;
}

#irpr-app .irpr-statusbar__dot--idle {
  background: rgba(255,255,255,.25);
}

#irpr-app .irpr-statusbar__dot--ok {
  background: var(--irpr-green);
  box-shadow: 0 0 0 2px rgba(26,158,92,.25);
}

#irpr-app .irpr-statusbar__dot--warn {
  background: var(--irpr-yellow);
}

#irpr-app .irpr-statusbar__dot--error {
  background: var(--irpr-red);
}

/* Texto de status ao lado do dot */
#irpr-app #irpr-status-texto {
  font-weight: 500;
  color: rgba(255,255,255,.70);
}

/* Nome do declarante na statusbar */
#irpr-app #irpr-status-nome-wrap strong {
  color:       rgba(255,255,255,.90);
  font-weight: 600;
  max-width:   220px;
  overflow:    hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  display:     inline-block;
  vertical-align: middle;
}

/* ══════════════════════════════════════════════════════════
   LAYOUT PRINCIPAL
   ══════════════════════════════════════════════════════════ */
#irpr-app .irpr-kpi-grid,
#irpr-app .irpr-charts-grid,
#irpr-app .irpr-tabela-section {
  padding: 0 24px;
}

#irpr-app .irpr-kpi-grid {
  display:               grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap:                   16px;
  margin:                24px 0 0;
}

#irpr-app .irpr-charts-grid {
  display:               grid;
  grid-template-columns: repeat(2, 1fr);
  gap:                   16px;
  margin:                16px 0 0;
}

#irpr-app .irpr-tabela-section {
  margin: 16px 0 0;
}

#irpr-app .irpr-tabela-section + .irpr-tabela-section {
  margin-bottom: 32px;
}

/* ── Bens e Dívidas lado a lado (50% / 50%) ──────────────── */
#irpr-app .irpr-tabelas-grid {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   16px;
  padding:               0 24px;
  margin:                16px 0 0;
  align-items:           start;
}

/* Dentro do grid, as seções não têm padding lateral próprio */
#irpr-app .irpr-tabelas-grid .irpr-tabela-section {
  padding: 0;
  margin:  0;
}

#irpr-app .irpr-tabelas-grid .irpr-tabela-section + .irpr-tabela-section {
  margin: 0;
}

/* Inputs de discriminação mais compactos no layout 50/50 */
#irpr-app .irpr-tabelas-grid .irpr-input--discriminacao {
  min-width: 120px;
  max-width: 100%;
}

#irpr-app .irpr-tabelas-grid .irpr-tabela__th--discriminacao {
  min-width: 140px;
}

@media (max-width: 1100px) {
  #irpr-app .irpr-tabelas-grid {
    grid-template-columns: 1fr;
  }
  #irpr-app .irpr-tabelas-grid .irpr-tabela-section {
    margin-bottom: 0;
  }
}

/* ══════════════════════════════════════════════════════════
   KPI CARDS
   ══════════════════════════════════════════════════════════ */
#irpr-app .irpr-kpi-card {
  background:    var(--irpr-surface);
  border-radius: var(--irpr-radius-lg);
  border:        1px solid var(--irpr-border);
  padding:       20px;
  display:       flex;
  align-items:   flex-start;
  gap:           14px;
  box-shadow:    var(--irpr-shadow-sm);
  transition:    box-shadow var(--irpr-transition),
                 transform  var(--irpr-transition);
}

#irpr-app .irpr-kpi-card:hover {
  box-shadow:  var(--irpr-shadow);
  transform:   translateY(-1px);
}

#irpr-app .irpr-kpi-card__icon {
  width:         40px;
  height:        40px;
  border-radius: var(--irpr-radius);
  display:       flex;
  align-items:   center;
  justify-content: center;
  flex-shrink:   0;
}

#irpr-app .irpr-kpi-card__icon svg {
  width:  20px;
  height: 20px;
}

#irpr-app .irpr-kpi-card--green .irpr-kpi-card__icon {
  background: var(--irpr-green-bg);
  color:      var(--irpr-green);
}

#irpr-app .irpr-kpi-card--red .irpr-kpi-card__icon {
  background: var(--irpr-red-bg);
  color:      var(--irpr-red);
}

#irpr-app .irpr-kpi-card--blue .irpr-kpi-card__icon {
  background: var(--irpr-blue-bg);
  color:      var(--irpr-blue);
}

#irpr-app .irpr-kpi-card--orange .irpr-kpi-card__icon {
  background: var(--irpr-orange-light);
  color:      var(--irpr-orange);
}

#irpr-app .irpr-kpi-card__body {
  flex: 1;
  min-width: 0;
}

#irpr-app .irpr-kpi-card__label {
  font-size:   11px;
  font-weight: 600;
  color:       var(--irpr-text-muted);
  text-transform: uppercase;
  letter-spacing: .6px;
  margin-bottom: 4px;
}

#irpr-app .irpr-kpi-card__value {
  font-family: var(--irpr-font-mono);
  font-size:   20px;
  font-weight: 600;
  color:       var(--irpr-text);
  letter-spacing: -.5px;
  white-space: nowrap;
  overflow:    hidden;
  text-overflow: ellipsis;
}

/* ══════════════════════════════════════════════════════════
   GRÁFICOS
   ══════════════════════════════════════════════════════════ */
#irpr-app .irpr-chart-card {
  background:    var(--irpr-surface);
  border-radius: var(--irpr-radius-lg);
  border:        1px solid var(--irpr-border);
  padding:       20px;
  box-shadow:    var(--irpr-shadow-sm);
}

#irpr-app .irpr-chart-card__title {
  font-size:     13px;
  font-weight:   600;
  color:         var(--irpr-text-muted);
  text-transform: uppercase;
  letter-spacing: .5px;
  margin-bottom: 16px;
}

#irpr-app .irpr-chart-card__wrap {
  position:       relative;
  height:         280px;
}

#irpr-app .irpr-chart-card__wrap canvas {
  width:  100% !important;
  height: 100% !important;
}

/* ══════════════════════════════════════════════════════════
   TABELAS
   ══════════════════════════════════════════════════════════ */
#irpr-app .irpr-tabela-header {
  display:         flex;
  align-items:     center;
  justify-content: space-between;
  padding:         14px 0 10px;
  border-bottom:   2px solid var(--irpr-border);
  margin-bottom:   0;
}

/* Accent colorido na borda superior da seção bens (verde) e dívidas (vermelho) */
#irpr-app #irpr-section-bens {
  border-top:    3px solid var(--irpr-green);
  border-radius: var(--irpr-radius-sm) var(--irpr-radius-sm) 0 0;
}

#irpr-app #irpr-section-dividas {
  border-top:    3px solid var(--irpr-red);
  border-radius: var(--irpr-radius-sm) var(--irpr-radius-sm) 0 0;
}

/* Ícone do título: bens=verde, dívidas=vermelho */
#irpr-app #irpr-section-bens .irpr-tabela-header__title {
  color: var(--irpr-green);
}
#irpr-app #irpr-section-bens .irpr-tabela-header__title svg {
  color: var(--irpr-green);
}

#irpr-app #irpr-section-dividas .irpr-tabela-header__title {
  color: var(--irpr-red);
}
#irpr-app #irpr-section-dividas .irpr-tabela-header__title svg {
  color: var(--irpr-red);
}

#irpr-app .irpr-tabela-header__title {
  display:     flex;
  align-items: center;
  gap:         8px;
  font-size:   15px;
  font-weight: 700;
  color:       var(--irpr-navy);
}

#irpr-app .irpr-tabela-header__title svg {
  color:      var(--irpr-navy-light);
  flex-shrink: 0;
}

/* Botão Adicionar linha — contexto claro */
#irpr-app .irpr-tabela-header .irpr-btn--secondary {
  background:   var(--irpr-surface);
  color:        var(--irpr-navy);
  border-color: var(--irpr-border);
}

#irpr-app .irpr-tabela-header .irpr-btn--secondary:hover {
  background:   var(--irpr-bg);
  border-color: var(--irpr-navy-light);
  color:        var(--irpr-navy);
}

#irpr-app .irpr-tabela-wrap {
  overflow-x: auto;
  border:     1px solid var(--irpr-border);
  border-top: none;
  border-radius: 0 0 var(--irpr-radius) var(--irpr-radius);
  box-shadow: var(--irpr-shadow-sm);
}

#irpr-app .irpr-tabela {
  width:           100%;
  border-collapse: collapse;
  font-size:       13px;
}

#irpr-app .irpr-tabela__th {
  background:   var(--irpr-navy);
  color:        rgba(255,255,255,.80);
  font-size:    11px;
  font-weight:  600;
  text-transform: uppercase;
  letter-spacing: .5px;
  padding:      10px 12px;
  text-align:   left;
  white-space:  nowrap;
  border-bottom: 1px solid var(--irpr-navy-light);
}

#irpr-app .irpr-tabela__th--num {
  width: 40px;
  text-align: center;
}

#irpr-app .irpr-tabela__th--discriminacao {
  min-width: 240px;
}

/* Inputs de discriminação: limitar largura visual para não explodir a tabela */
#irpr-app .irpr-tabela .irpr-input--discriminacao {
  min-width: 200px;
  max-width: 420px;
}

#irpr-app .irpr-tabela__th--cod {
  width: 110px;
  text-align: center;
}

/* Coluna Brasil/Exterior — select compacto */
#irpr-app .irpr-tabela__th--cnpj {
  width: 130px;
  text-align: center;
}

/* Select de Brasil/Exterior dentro da tabela */
#irpr-app .irpr-tabela td .irpr-input--in-exterior {
  width:      100%;
  max-width:  120px;
  text-align: center;
  font-size:  0.8rem;
  padding:    2px 4px;
  background: var(--irpr-surface);
  border:     1px solid var(--irpr-border);
  border-radius: 4px;
  color:      var(--irpr-text-primary);
  cursor:     pointer;
}

#irpr-app .irpr-tabela__th--valor {
  width:      140px;
  text-align: right;
}

#irpr-app .irpr-tabela__th--acao {
  width: 48px;
}

/* ── Linhas de dados ───────────────────────────────────── */
#irpr-app .irpr-tabela tbody tr {
  background:  var(--irpr-surface);
  border-bottom: 1px solid var(--irpr-border);
  transition:  background var(--irpr-transition);
}

#irpr-app .irpr-tabela tbody tr:last-child {
  border-bottom: none;
}

#irpr-app .irpr-tabela tbody tr:hover {
  background: #f8f9fb;
}

#irpr-app .irpr-tabela tbody tr.irpr-tabela__row--novo {
  animation: irpr-fadeInRow .25s ease forwards;
}

@keyframes irpr-fadeInRow {
  from { opacity: 0; background: #fffae8; }
  to   { opacity: 1; background: var(--irpr-surface); }
}

#irpr-app .irpr-tabela td {
  padding: 6px 12px;
  vertical-align: middle;
}

#irpr-app .irpr-tabela__td--num {
  text-align:  center;
  color:       var(--irpr-text-muted);
  font-family: var(--irpr-font-mono);
  font-size:   11px;
}

/* ── Inputs inline ─────────────────────────────────────── */
#irpr-app .irpr-tabela input[type="text"],
#irpr-app .irpr-tabela input[type="number"],
#irpr-app .irpr-tabela select {
  width:         100%;
  padding:       5px 8px;
  font-size:     13px;
  font-family:   inherit;
  color:         var(--irpr-text);
  background:    transparent;
  border:        1px solid transparent;
  border-radius: var(--irpr-radius-sm);
  transition:    border-color var(--irpr-transition),
                 background   var(--irpr-transition),
                 box-shadow   var(--irpr-transition);
  outline:       none;
  -moz-appearance: textfield;
}

#irpr-app .irpr-tabela input[type="number"]::-webkit-inner-spin-button,
#irpr-app .irpr-tabela input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

#irpr-app .irpr-tabela input[type="text"]:hover,
#irpr-app .irpr-tabela input[type="number"]:hover,
#irpr-app .irpr-tabela select:hover {
  border-color: var(--irpr-border-dark);
  background:   var(--irpr-bg);
}

#irpr-app .irpr-tabela input[type="text"]:focus,
#irpr-app .irpr-tabela input[type="number"]:focus,
#irpr-app .irpr-tabela select:focus {
  border-color: var(--irpr-blue);
  background:   #fff;
  box-shadow:   0 0 0 3px rgba(25,103,210,.12);
}

#irpr-app .irpr-tabela input.irpr-input--valor {
  font-family: var(--irpr-font-mono);
  text-align:  right;
}

#irpr-app .irpr-tabela input.irpr-input--cod {
  text-align: center;
  max-width:  70px;
}

/* ── Linha vazia ───────────────────────────────────────── */
#irpr-app .irpr-tabela__empty {
  text-align:  center;
  padding:     40px 20px;
  color:       var(--irpr-text-muted);
  font-size:   13px;
  font-style:  italic;
}

/* ── Botão deletar ─────────────────────────────────────── */
#irpr-app .irpr-btn-delete {
  display:         flex;
  align-items:     center;
  justify-content: center;
  width:           28px;
  height:          28px;
  padding:         0;
  background:      transparent;
  border:          1px solid transparent;
  border-radius:   var(--irpr-radius-sm);
  color:           var(--irpr-text-light);
  cursor:          pointer;
  transition:      color var(--irpr-transition),
                   background var(--irpr-transition),
                   border-color var(--irpr-transition);
}

#irpr-app .irpr-btn-delete:hover {
  color:        var(--irpr-red);
  background:   var(--irpr-red-bg);
  border-color: rgba(217,48,37,.25);
}

#irpr-app .irpr-btn-delete svg {
  width:  14px;
  height: 14px;
  pointer-events: none;
}

/* ── Rodapé da tabela ──────────────────────────────────── */
#irpr-app .irpr-tabela__footer {
  background: var(--irpr-navy-dark);
}

#irpr-app .irpr-tabela__footer td {
  padding: 10px 12px;
}

#irpr-app .irpr-tabela__footer-label {
  font-size:      11px;
  font-weight:    700;
  text-transform: uppercase;
  letter-spacing: .6px;
  color:          rgba(255,255,255,.50);
}

#irpr-app .irpr-tabela__footer-val {
  font-family:  var(--irpr-font-mono);
  font-size:    14px;
  font-weight:  700;
  color:        #fff;
  text-align:   right;
  white-space:  nowrap;
}

/* ══════════════════════════════════════════════════════════
   TOAST
   ══════════════════════════════════════════════════════════ */
#irpr-app #irpr-toast {
  position:      fixed;
  bottom:        24px;
  right:         24px;
  z-index:       9999;
  max-width:     360px;
  min-width:     220px;
  display:       flex;
  flex-direction: column;
  gap:           8px;
  pointer-events: none;
}

#irpr-app .irpr-toast__item {
  display:       flex;
  align-items:   flex-start;
  gap:           10px;
  padding:       12px 16px;
  border-radius: var(--irpr-radius);
  background:    var(--irpr-navy);
  color:         #fff;
  font-size:     13px;
  font-weight:   500;
  box-shadow:    var(--irpr-shadow-lg);
  pointer-events: auto;
  animation:     irpr-toastIn .22s ease forwards;
  border-left:   3px solid var(--irpr-border-dark);
}

#irpr-app .irpr-toast__item--success {
  border-left-color: var(--irpr-green);
}

#irpr-app .irpr-toast__item--error {
  border-left-color: var(--irpr-red);
  background:        #2d0e0e;
}

#irpr-app .irpr-toast__item--warn {
  border-left-color: var(--irpr-yellow);
}

#irpr-app .irpr-toast__item.irpr-toast--hide {
  animation: irpr-toastOut .2s ease forwards;
}

@keyframes irpr-toastIn {
  from { opacity: 0; transform: translateX(20px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes irpr-toastOut {
  from { opacity: 1; transform: translateX(0);    max-height: 80px; }
  to   { opacity: 0; transform: translateX(20px); max-height: 0;   padding: 0; margin: 0; }
}

#irpr-app .irpr-toast__icon {
  flex-shrink: 0;
  margin-top:  1px;
}

/* ══════════════════════════════════════════════════════════
   ANIMAÇÃO DE LOADING (spinner)
   ══════════════════════════════════════════════════════════ */
#irpr-app .irpr-spinner {
  display:       inline-block;
  width:         14px;
  height:        14px;
  border:        2px solid rgba(255,255,255,.3);
  border-top-color: #fff;
  border-radius: 50%;
  animation:     irpr-spin .6s linear infinite;
  flex-shrink:   0;
}

@keyframes irpr-spin {
  to { transform: rotate(360deg); }
}

/* ══════════════════════════════════════════════════════════
   ESTADO DESABILITADO
   ══════════════════════════════════════════════════════════ */
#irpr-app .irpr-btn:disabled,
#irpr-app .irpr-btn[aria-disabled="true"] {
  opacity: .45;
  cursor:  not-allowed;
  pointer-events: none;
}

/* ══════════════════════════════════════════════════════════
   RESPONSIVIDADE
   ══════════════════════════════════════════════════════════ */

/* ── Ações do cabeçalho de seção ──────────────────────── */
#irpr-app .irpr-tabela-header__actions {
  display:     flex;
  align-items: center;
  gap:         0.5rem;
  flex-wrap:   wrap;
}

/* Label-botão para input file oculto */
#irpr-app label.irpr-btn {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

/* Botão minimizar — cor laranja, visível sobre fundo escuro do header */
#irpr-app .irpr-btn--toggle {
  width:        32px;
  height:       32px;
  padding:      0;
  display:      flex;
  align-items:  center;
  justify-content: center;
  border-radius: 6px;
  border:       1px solid rgba(232,93,4,.50);
  background:   rgba(232,93,4,.12);
  color:        var(--irpr-orange);
  cursor:       pointer;
  flex-shrink:  0;
  transition:   background 0.15s, color 0.15s, border-color 0.15s, box-shadow 0.15s;
}
#irpr-app .irpr-btn--toggle:hover {
  background:   rgba(232,93,4,.22);
  border-color: var(--irpr-orange);
  color:        var(--irpr-orange);
  box-shadow:   0 0 0 3px rgba(232,93,4,.15);
}

/* Ícone rotaciona quando recolhido */
#irpr-app .irpr-btn--toggle svg {
  transition: transform 0.25s ease;
  display: block;
}
#irpr-app .irpr-btn--toggle[aria-expanded="false"] svg {
  transform: rotate(180deg);
}

/* Seção recolhida */
#irpr-app .irpr-tabela-wrap--collapsed {
  display: none;
}

/* Select Brasil/Exterior dentro da célula da tabela */
#irpr-app .irpr-tabela td .irpr-input--in-exterior {
  width:         100%;
  max-width:     120px;
  text-align:    center;
  font-size:     0.8rem;
  padding:       3px 4px;
  background:    var(--irpr-surface, #fff);
  border:        1px solid var(--irpr-border, #ddd);
  border-radius: 4px;
  color:         var(--irpr-text-primary, #1a1a2e);
  cursor:        pointer;
}

@media (max-width: 1200px) {
  #irpr-app .irpr-kpi-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 900px) {
  #irpr-app .irpr-charts-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  #irpr-app .irpr-topbar {
    flex-wrap:  wrap;
    height:     auto;
    padding:    12px 16px;
    gap:        10px;
  }

  #irpr-app .irpr-topbar__actions {
    width: 100%;
  }

  #irpr-app .irpr-kpi-grid {
    grid-template-columns: 1fr 1fr;
    padding:               0 16px;
  }

  #irpr-app .irpr-charts-grid,
  #irpr-app .irpr-tabela-section {
    padding: 0 16px;
  }

  #irpr-app .irpr-kpi-card__value {
    font-size: 16px;
  }
}

@media (max-width: 480px) {
  #irpr-app .irpr-kpi-grid {
    grid-template-columns: 1fr;
  }

  #irpr-app .irpr-topbar__actions {
    gap: 6px;
  }

  #irpr-app .irpr-btn {
    padding:   6px 10px;
    font-size: 12px;
  }
}

/* ══════════════════════════════════════════════════════════
   UTILITÁRIOS
   ══════════════════════════════════════════════════════════ */
#irpr-app .irpr-sr-only {
  position: absolute;
  width:    1px;
  height:   1px;
  padding:  0;
  margin:   -1px;
  overflow: hidden;
  clip:     rect(0,0,0,0);
  border:   0;
}

#irpr-app .irpr-text-right { text-align: right; }
#irpr-app .irpr-text-center { text-align: center; }
#irpr-app .irpr-mono { font-family: var(--irpr-font-mono); }
