:root {
  --bg: #eef6fb;
  --panel: #ffffff;
  --text: #172033;
  --muted: #697386;
  --line: #dce8f2;
  --primary: #21a8e8;
  --primary-dark: #0b6fa4;
  --success: #22a06b;
  --warning: #f2b84b;
  --danger: #e34d59;
  --orange: #f28c38;
  --dark: #101828;
  --shadow: 0 12px 30px rgba(16, 24, 40, .08);
  --radius: 18px;
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body {
  margin: 0;
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  color: var(--text);
  background: var(--bg);
}
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
code {
  background: #f2f6fb;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 2px 6px;
}

.toast-root {
  position: fixed;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1000;
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
}
.toast {
  min-width: 280px;
  max-width: 560px;
  padding: 12px 16px;
  border-radius: 12px;
  color: #fff;
  box-shadow: var(--shadow);
  animation: toast-in .2s ease-out;
}
.toast.info { background: var(--primary); }
.toast.success { background: var(--success); }
.toast.error { background: var(--danger); }
.toast.warning { background: var(--orange); }
@keyframes toast-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }

.status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 54px;
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  background: #eef3f8;
  color: var(--muted);
}
.status-new { background: #e8f5ff; color: var(--primary-dark); }
.status-duplicate { background: #f2f6fb; color: var(--muted); }
.status-error, .status-error { background: #ffecee; color: var(--danger); }
.status-ok, .status-processed { background: #eaf8f1; color: var(--success); }
.status-processing, .status-retry { background: #fff7e6; color: #93630b; }
.status-active { background: #eaf8f1; color: var(--success); }
.status-inactive { background: #f2f6fb; color: var(--muted); }
.status-needs_review { background: #fff7e6; color: #93630b; }
.status-done { background: #eaf8f1; color: var(--success); }
.status-done_with_errors { background: #fff7e6; color: #93630b; }
