@import url('https://fonts.googleapis.com/css2?family=Sarabun:wght@300;400;500;600;700;800&display=swap');

* { box-sizing: border-box; }
body { font-family: 'Sarabun', sans-serif; }

/* ── Tabs ───────────────────────────────────── */
.tab-btn { border-radius: 6px; font-weight: 500; color: #6B7280; transition: all .15s; }
.tab-btn.active { background: #fff; color: #2563EB; font-weight: 600; box-shadow: 0 1px 3px rgba(0,0,0,.12); }

/* ── Upload zone ────────────────────────────── */
.upload-zone {
  border: 2px dashed #D1D5DB; border-radius: 10px;
  padding: 22px; text-align: center; cursor: pointer; transition: all .2s;
}
.upload-zone:hover            { border-color: #93C5FD; background: #F0F9FF; }
.upload-zone.drag-over        { border-color: #2563EB; background: #EFF6FF; }
.upload-zone.has-file         { border-color: #10B981; background: #ECFDF5; }
.upload-zone.error-file       { border-color: #EF4444; background: #FEF2F2; }

/* ── Status badges ──────────────────────────── */
.badge { display:inline-flex; align-items:center; padding:3px 10px; border-radius:20px; font-size:12px; font-weight:500; }
.badge-new         { background:#F3F4F6; color:#374151; }
.badge-reviewing   { background:#DBEAFE; color:#1D4ED8; }
.badge-shortlisted { background:#FEF9C3; color:#854D0E; }
.badge-interviewed { background:#FFEDD5; color:#9A3412; }
.badge-offered     { background:#EDE9FE; color:#5B21B6; }
.badge-hired       { background:#D1FAE5; color:#065F46; }
.badge-rejected    { background:#FEE2E2; color:#991B1B; }

/* ── Sidebar links ──────────────────────────── */
.sidebar-link {
  display:flex; align-items:center; gap:10px; padding:9px 12px;
  border-radius:8px; color:#6B7280; font-size:14px; font-weight:500;
  text-decoration:none; transition:all .15s; white-space:nowrap;
}
.sidebar-link:hover  { background:#F9FAFB; color:#111827; }
.sidebar-link.active { background:#EFF6FF; color:#2563EB; }

/* ── Spinner ────────────────────────────────── */
.spinner {
  width:36px; height:36px;
  border:4px solid #BFDBFE; border-top-color:#2563EB;
  border-radius:50%; animation:spin .75s linear infinite;
}
@keyframes spin { to { transform:rotate(360deg); } }

/* ── Toast ──────────────────────────────────── */
.toast {
  position:fixed; bottom:24px; right:24px;
  padding:14px 20px; border-radius:10px;
  color:#fff; font-weight:500; font-size:14px; z-index:9999;
  transform:translateY(80px); opacity:0;
  transition:all .3s cubic-bezier(.34,1.56,.64,1); pointer-events:none;
  max-width:320px; box-shadow:0 4px 20px rgba(0,0,0,.2);
}
.toast.show    { transform:translateY(0); opacity:1; }
.toast.success { background:#059669; }
.toast.error   { background:#DC2626; }
.toast.info    { background:#2563EB; }

/* ── Form field builder ─────────────────────── */
.field-card {
  background:#fff; border:1px solid #E5E7EB;
  border-radius:8px; padding:12px 14px;
  transition: border-color .15s;
}
.field-card:hover { border-color:#BFDBFE; }

/* ── Table row hover ────────────────────────── */
tr.row-hover:hover { background:#F9FAFB; cursor:pointer; }

/* ── Prose (job description) ────────────────── */
.prose { line-height:1.75; white-space:pre-wrap; }

/* ── Custom scrollbar ───────────────────────── */
::-webkit-scrollbar       { width:6px; height:6px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:#D1D5DB; border-radius:3px; }
::-webkit-scrollbar-thumb:hover { background:#9CA3AF; }

/* ── Input focus ring ───────────────────────── */
.inp {
  width:100%; border:1px solid #E5E7EB; border-radius:8px;
  padding:8px 12px; font-size:14px; font-family:'Sarabun',sans-serif;
  transition:border-color .15s, box-shadow .15s; outline:none;
}
.inp:focus { border-color:#2563EB; box-shadow:0 0 0 3px rgba(37,99,235,.15); }
.inp.error { border-color:#EF4444; box-shadow:0 0 0 3px rgba(239,68,68,.12); }
