*, *::before, *::after { 
  box-sizing: border-box; 
  margin: 0; 
  padding: 0; 
}

:root {
  /* ── Novo Esquema de Cores Claras ── */
  --bg:        #F8FAFC; /* Fundo principal Branco Gelo */
  --surface:   #FFFFFF; /* Superfície dos cards em Branco Puro */
  --surface2:  #F1F5F9; /* Inputs e elementos secundários em cinza bem claro */
  --border:    #E2E8F0; /* Bordas suaves */
  --accent:    #7B48EA; /* Roxo (Sua nova cor principal) */
  --accent2:   #6333D0; /* Roxo ligeiramente mais escuro para efeito Hover */
  --success:   #10B981; /* Verde para sucesso */
  --error:     #EF4444; /* Vermelho para falhas */
  --warn:      #F59E0B; /* Âmbar para atenção */
  --text:      #0F172A; /* Grafite escuro para leitura perfeita no fundo branco */
  --muted:     #64748B; /* Cinza médio para textos secundários e labels */
  
  /* ── Tipografia Solicitada ── */
  --font-title: 'Segoe UI Black', 'Arial Black', sans-serif;
  --font-body:  'Aptos Light', 'Aptos', 'Segoe UI Light', 'Segoe UI', system-ui, sans-serif;
  --font-mono:  Consolas, 'Liberation Mono', Menlo, Courier, monospace;
}

body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  font-weight: 300;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 2.5rem 1rem 4rem;
}

/* ── Header ── */
header {
  width: 100%;
  max-width: 680px;
  margin-bottom: 2.5rem;
  display: flex;
  align-items: center;
  gap: 14px;
  border-bottom: 1px solid var(--border);
  padding-bottom: 1.25rem;
}
.logo-mark {
  width: 44px;
  height: 44px;
  background: #FFFFFF !important;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 6px;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08); /* Sombra mais sutil adequada para fundo claro */
}

.header-text h1 {
  font-family: var(--font-title);
  font-size: 22px;
  text-transform: uppercase;
  letter-spacing: -0.5px;
  color: var(--text);
  line-height: 1.1;
}
.header-text p { 
  font-size: 13px; 
  color: var(--accent); /* Subtítulo herda o roxo */
  font-weight: 600; 
  margin-top: 4px;
}

/* ── Card ── */
.card {
  width: 100%; max-width: 680px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.75rem 2rem;
  margin-bottom: 1.25rem;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.04); /* Sombra elegante para o card branco */
}
.card-title {
  font-family: var(--font-title);
  font-size: 13px; 
  letter-spacing: .05em;
  text-transform: uppercase; 
  color: var(--accent); /* Títulos internos ganham destaque roxo */
  margin-bottom: 1.25rem;
}

/* ── Form ── */
.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
label { 
  display: block; 
  font-size: 13px; 
  color: var(--muted); 
  font-weight: 500; 
  margin-bottom: 6px; 
}
input[type="date"] {
  width: 100%;
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--text);
  font-family: var(--font-mono);
  font-size: 14px;
  padding: 11px 14px;
  outline: none;
  transition: all .15s ease-in-out;
  color-scheme: light; /* Alinhado para calendário claro */
}
input[type="date"]:focus { 
  border-color: var(--accent); 
  box-shadow: 0 0 0 3px rgba(123, 72, 234, 0.15); /* Shadow roxo ao focar */
}

/* Botão Principal Roxo */
.btn-run {
  width: 100%;
  padding: 14px;
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  color: #FFFFFF; /* Texto branco para contraste com o roxo */
  font-family: var(--font-title);
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: all .2s;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  box-shadow: 0 4px 14px rgba(123, 72, 234, 0.25);
}
.btn-run:hover:not(:disabled) { 
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(123, 72, 234, 0.4);
}
.btn-run:active:not(:disabled) { transform: scale(.99); }
.btn-run:disabled { opacity: .35; cursor: not-allowed; box-shadow: none; }

/* ── Warning badge ── */
.badge-warn {
  display: flex; align-items: flex-start; gap: 10px;
  background: rgba(245, 158, 11, 0.08);
  border: 1px solid rgba(245, 158, 11, 0.25);
  border-radius: 8px;
  padding: 14px;
  font-size: 13.5px;
  color: #B45309; /* Tom escuro de atenção para contraste no fundo claro */
  margin-bottom: 1.5rem;
  line-height: 1.5;
}
.badge-warn svg { flex-shrink: 0; margin-top: 2px; color: var(--warn); }
.badge-warn strong { font-weight: 600; color: #78350F; }

/* ── Log console (Manteve estilo terminal, mas suavizado) ── */
#log-wrap {
  width: 100%; max-width: 680px;
  display: none;
}
.console {
  background: #0F172A; /* Preservado escuro para legibilidade de código técnico */
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 1.25rem;
  font-family: var(--font-mono);
  font-size: 13px;
  line-height: 1.7;
  min-height: 200px;
  max-height: 420px;
  overflow-y: auto;
}
.log-line { display: flex; gap: 10px; align-items: flex-start; }
.log-ts   { color: #64748B; flex-shrink: 0; font-size: 11px; padding-top: 2px; }
.log-msg  { color: #E2E8F0; }
.log-msg.sucesso { color: #34D399; }
.log-msg.erro    { color: #F87171; }
.log-msg.done    { font-family: var(--font-title); color: #A78BFA; font-size: 12px; }

/* ── Settings toggle ── */
details { width: 100%; max-width: 680px; }
summary {
  cursor: pointer; font-size: 13px; color: var(--muted);
  list-style: none; display: flex; align-items: center; gap: 6px;
  user-select: none; padding: .6rem 0;
  font-weight: 500;
  transition: color 0.15s;
}
summary:hover { color: var(--accent); }
summary::-webkit-details-marker { display: none; }
summary svg { transition: transform .2s; }
details[open] summary svg { transform: rotate(90deg); color: var(--accent); }

.settings-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .75rem 1.25rem;
  margin-top: 1rem;
  font-size: 13px;
}
.settings-grid dt { color: var(--muted); margin-bottom: 2px; font-weight: 500; }
.settings-grid dd { font-family: var(--font-mono); color: var(--text); font-size: 12px; word-break: break-all; }

/* ── Status chip ── */
#status-chip {
  display: none;
  margin-top: 1.25rem;
  padding: 10px 16px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  text-align: center;
  background: rgba(16, 185, 129, 0.1);
  border: 1px solid rgba(16, 185, 129, 0.25);
  color: #065F46;
}
#status-chip.erro {
  background: rgba(239, 68, 68, 0.1);
  border-color: rgba(239, 68, 68, 0.25);
  color: #991B1B;
}

@keyframes spin { to { transform: rotate(360deg); } }
.spin { animation: spin .9s linear infinite; }

/* Novo Botão de Download */
.btn-download {
  width: 100%;
  padding: 14px;
  background: #FFFFFF;
  color: var(--accent); /* Texto Roxo */
  font-family: var(--font-title);
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border: 2px solid var(--accent); /* Borda Roxa */
  border-radius: 8px;
  cursor: pointer;
  transition: all .2s;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.03);
}

.btn-download:hover {
  background: rgba(123, 72, 234, 0.05); /* Fundo sutil roxo no hover */
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(123, 72, 234, 0.15);
}

.btn-download:active { transform: scale(.99); }