:root {
  --brand-primary: #2563eb;
  --brand-primary-dark: #1d4ed8;
  --brand-bg: #f6f8fb;
  --brand-success: #16a34a;
  --brand-danger: #dc2626;
}

body {
  background-color: var(--brand-bg);
  font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
}

.app-navbar {
  background: linear-gradient(135deg, var(--brand-primary), var(--brand-primary-dark));
  padding: 0.9rem 0;
  box-shadow: 0 2px 10px rgba(0,0,0,0.08);
}

.app-navbar .navbar-brand,
.app-navbar .nav-link {
  color: #eef2ff !important;
  font-weight: 500;
}

.app-navbar .nav-link.active {
  color: #fff !important;
  font-weight: 700;
  text-decoration: underline;
}

.card {
  border: none;
  border-radius: 14px;
  box-shadow: 0 2px 14px rgba(15, 23, 42, 0.06);
}

.card-header {
  background: transparent;
  border-bottom: 1px solid rgba(15, 23, 42, 0.06);
  font-weight: 600;
}

.btn-primary {
  background-color: var(--brand-primary);
  border-color: var(--brand-primary);
}
.btn-primary:hover {
  background-color: var(--brand-primary-dark);
  border-color: var(--brand-primary-dark);
}

.upload-dropzone {
  border: 2px dashed #c7d2fe;
  border-radius: 14px;
  background: #fbfcff;
  padding: 3rem 2rem;
  text-align: center;
  transition: border-color 0.15s ease, background 0.15s ease;
  cursor: pointer;
}
.upload-dropzone.dragover {
  border-color: var(--brand-primary);
  background: #eef2ff;
}
.upload-dropzone i {
  font-size: 2.5rem;
  color: var(--brand-primary);
}

.stat-tile {
  border-radius: 14px;
  padding: 1.25rem 1.5rem;
  color: #fff;
}
.stat-tile.total { background: linear-gradient(135deg,#475569,#334155); }
.stat-tile.valid { background: linear-gradient(135deg,#22c55e,#16a34a); }
.stat-tile.invalid { background: linear-gradient(135deg,#f87171,#dc2626); }
.stat-tile.duplicate { background: linear-gradient(135deg,#fbbf24,#d97706); }

.stat-tile .value { font-size: 2rem; font-weight: 700; }
.stat-tile .label { font-size: 0.85rem; opacity: 0.9; }

.badge-valid {
  background-color: rgba(22,163,74,0.12);
  color: var(--brand-success);
  font-weight: 600;
}
.badge-invalid {
  background-color: rgba(220,38,38,0.12);
  color: var(--brand-danger);
  font-weight: 600;
}
.badge-duplicate {
  background-color: rgba(217,119,6,0.14);
  color: #b45309;
  font-weight: 600;
  margin-left: 0.35rem;
}
.badge-warning {
  background-color: rgba(234,88,12,0.12);
  color: #c2410c;
  font-weight: 600;
  margin-left: 0.35rem;
  cursor: help;
}

table.table-numbers th {
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #64748b;
}

.table-numbers tbody tr:hover {
  background-color: #f8fafc;
}

.preview-table {
  font-size: 0.85rem;
}

.table-numbers td.small > div {
  max-width: 320px;
  white-space: normal;
  word-break: break-word;
}

.auth-page {
  min-height: 100vh;
  background-color: #f1f5f9;
}
