/* Envios para Apontamento - Styles */
@keyframes fadeIn { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:translateY(0)} }
@keyframes slideUp { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }
@keyframes pulse-ring { 0%{transform:scale(.9);opacity:.7} 50%{transform:scale(1.05);opacity:1} 100%{transform:scale(.9);opacity:.7} }
@keyframes shimmer { from{background-position:-200% 0} to{background-position:200% 0} }
@keyframes spin { to{transform:rotate(360deg)} }

.fade-in { animation: fadeIn .4s ease-out forwards }
.slide-up { animation: slideUp .5s ease-out forwards }
.pulse-ring { animation: pulse-ring 2s ease-in-out infinite }

/* Upload zone */
.upload-zone {
  border: 2px dashed #D1D5DB;
  border-radius: 1.5rem;
  padding: 3rem;
  text-align: center;
  transition: all .3s cubic-bezier(.4,0,.2,1);
  cursor: pointer;
  background: white;
}
.upload-zone:hover, .upload-zone.drag-over {
  border-color: #059669;
  background: #ECFDF5;
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(5,150,105,.1);
}
.upload-zone.drag-over {
  border-color: #10B981;
  background: #D1FAE5;
}

/* Status badges */
.badge { display:inline-flex; align-items:center; gap:4px; padding:2px 10px; border-radius:9999px; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.03em; }
.badge-pending { background:#FEF3C7; color:#92400E; }
.badge-processing { background:#DBEAFE; color:#1E40AF; }
.badge-processed { background:#D1FAE5; color:#065F46; }
.badge-rejected { background:#FEE2E2; color:#991B1B; }
.badge-error { background:#FEE2E2; color:#991B1B; }

/* Table */
.apto-table { width:100%; border-collapse:separate; border-spacing:0; }
.apto-table th { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:#6B7280; padding:12px 16px; text-align:left; border-bottom:2px solid #E5E7EB; }
.apto-table td { padding:12px 16px; border-bottom:1px solid #F3F4F6; font-size:13px; vertical-align:middle; }
.apto-table tbody tr { transition:background .15s }
.apto-table tbody tr:hover { background:#F9FAFB; }

/* Cards */
.stat-card {
  background:white;
  border:1px solid #E5E7EB;
  border-radius:1rem;
  padding:1.5rem;
  transition: all .3s ease;
}
.stat-card:hover {
  border-color:#A7F3D0;
  box-shadow:0 4px 20px rgba(5,150,105,.08);
  transform:translateY(-2px);
}

/* Buttons */
.btn-brand {
  background: linear-gradient(135deg, #10B981, #059669);
  color: white;
  border: none;
  border-radius: 12px;
  padding: 10px 20px;
  font-weight: 600;
  font-size: 13px;
  cursor: pointer;
  transition: all .3s;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.btn-brand:hover { transform:translateY(-1px); box-shadow:0 6px 20px rgba(5,150,105,.25); }
.btn-brand:disabled { opacity:.5; cursor:not-allowed; transform:none; }

.btn-outline {
  background: white;
  color: #374151;
  border: 1px solid #D1D5DB;
  border-radius: 12px;
  padding: 8px 16px;
  font-weight: 500;
  font-size: 13px;
  cursor: pointer;
  transition: all .3s;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.btn-outline:hover { border-color:#059669; color:#059669; background:#ECFDF5; }

/* Loading spinner */
.spinner { width:20px; height:20px; border:2px solid #E5E7EB; border-top-color:#059669; border-radius:50%; animation:spin .6s linear infinite; }
.spinner-lg { width:40px; height:40px; border-width:3px; }

/* Navbar */
.apto-nav {
  background: linear-gradient(135deg, #064E3B 0%, #047857 50%, #059669 100%);
  padding: 0 1.5rem;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-shadow: 0 2px 10px rgba(0,0,0,.1);
}

/* Tabs */
.tab-btn { padding:8px 20px; font-size:13px; font-weight:600; color:#6B7280; border-bottom:2px solid transparent; cursor:pointer; transition:all .2s; background:none; border-top:none; border-left:none; border-right:none; }
.tab-btn:hover { color:#059669; }
.tab-btn.active { color:#059669; border-bottom-color:#059669; }

/* Modal */
.modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,.4); backdrop-filter:blur(4px); z-index:70; display:flex; align-items:center; justify-content:center; }
.modal-content { background:white; border-radius:1.5rem; max-width:500px; width:100%; margin:1rem; padding:2rem; box-shadow:0 25px 60px rgba(0,0,0,.15); }

/* Scrollbar */
::-webkit-scrollbar { width:6px; }
::-webkit-scrollbar-track { background:#F3F4F6; }
::-webkit-scrollbar-thumb { background:#D1D5DB; border-radius:3px; }
::-webkit-scrollbar-thumb:hover { background:#9CA3AF; }

/* Search input */
.search-input {
  background: white;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  padding: 8px 16px 8px 40px;
  font-size: 13px;
  width: 100%;
  max-width: 300px;
  transition: all .2s;
}
.search-input:focus { outline:none; border-color:#10B981; box-shadow:0 0 0 3px rgba(16,185,129,.1); }

/* Toast */
.toast { pointer-events:auto; padding:12px 20px; border-radius:12px; font-size:13px; font-weight:500; box-shadow:0 8px 25px rgba(0,0,0,.12); animation:slideUp .4s ease-out; }
.toast-success { background:#D1FAE5; color:#065F46; border:1px solid #A7F3D0; }
.toast-error { background:#FEE2E2; color:#991B1B; border:1px solid #FECACA; }
.toast-info { background:#DBEAFE; color:#1E40AF; border:1px solid #BFDBFE; }

/* Filter bar */
.filter-bar {
  display:flex; gap:8px; flex-wrap:wrap; align-items:center;
  padding:12px 0;
}
.filter-select {
  padding:6px 12px; border:1px solid #E5E7EB; border-radius:10px; font-size:12px; background:white; cursor:pointer;
}
.filter-select:focus { outline:none; border-color:#10B981; }
