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

.candidate-row-contact a { color: inherit; text-decoration: none; margin-right: .35rem; }
.candidate-row-contact a:hover { color: #2563eb; text-decoration: underline; }
.candidate-owner-col .candidate-owner-inline { display: flex; flex-direction: column; align-items: flex-start; gap: .3rem; }
.candidate-owner-col .candidate-owner-select { width: 100%; max-width: 150px; }
.received-date-cell b { display:block; font-size:.88rem; line-height:1.15; color:#0f172a; }
.received-date-cell small { display:block; margin-top:.18rem; color:#64748b; font-size:.72rem; }

:root {
  --primary-color: #2563eb;
  --primary-hover: #1d4ed8;
  --primary-orange: #f38020; /* Cloudflare Signature Orange */
  --bg-color: #f4f7fb;
  --card-bg: #ffffff;
  --text-main: #1d2d3d; /* Cloudflare dark text */
  --text-muted: #6b7280; /* Gray 500 */
  --border-color: #e2e8f0; /* Clean thin border - Cloudflare soft gray */
  --table-border-color: #e2e8f0;
  --table-header-bg: #f9fafb;
  --table-hover-bg: #f8fafc;
  --table-row-border: #f1f5f9;
  --success-color: #16a34a;
  --danger-color: #dc2626;
  --warning-color: #f38020;
  --info-color: #0051c3;
  --radius-sm: 5px;
  --radius-md: 6px;
  --radius-lg: 8px;
  --shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);
  --shadow-md: 0 2px 6px rgba(15, 23, 42, .07);
  --shadow-lg: 0 8px 20px rgba(15, 23, 42, .1);
}

/* Force Inter font-family globally to match Cloudflare's clean typography */
*, ::after, ::before {
  font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
}

body {
  background:
    radial-gradient(circle at 92% -8%, rgba(37, 99, 235, .13), transparent 32rem),
    linear-gradient(145deg, #f8fbff 0%, #f1f6ff 46%, #f7faff 100%);
  background-attachment: fixed;
  color: var(--text-main);
  -webkit-font-smoothing: antialiased;
}

.light-app {
  background-color: transparent;
}

/* Typography & Links */
h1, h2, h3, h5, h6 {
  font-weight: 600;
  color: var(--text-main);
  letter-spacing: -0.02em;
}

/* Page Title & Subtitle Styling like Cloudflare */
h4, main h4, .container-fluid h4, .page-title {
  font-size: 26px !important;
  font-weight: 600 !important;
  color: #111827 !important; /* Crisp dark gray */
  letter-spacing: -0.025em !important;
  margin-top: 0.5rem !important;
  margin-bottom: 0.25rem !important;
}

main h4 + .text-muted, .page-subtitle {
  font-size: 14px !important;
  color: #4b5563 !important;
  margin-bottom: 1.5rem !important;
}

/* Datatables text sizes and colors matching the pagination buttons */
.dataTables_length,
.dataTables_filter,
.dataTables_info {
  font-size: 0.85rem !important;
  color: var(--text-muted) !important;
  font-weight: 400 !important;
}

.dataTables_length label,
.dataTables_filter label {
  color: var(--text-muted) !important;
  font-weight: 400 !important;
}

.dataTables_length select {
  font-size: 0.85rem !important;
  color: var(--text-main) !important;
  border-radius: var(--radius-sm) !important;
  border: 1px solid var(--border-color) !important;
  padding: 4px 24px 4px 8px !important;
}

.dataTables_filter input {
  font-size: 0.85rem !important;
  color: var(--text-main) !important;
  border-radius: var(--radius-sm) !important;
  border: 1px solid var(--border-color) !important;
  padding: 4px 8px !important;
  margin-left: 0.5rem !important;
}

a {
  color: var(--primary-color);
  text-decoration: none;
  transition: color 0.15s ease;
}

a:hover {
  color: var(--primary-hover);
}

/* Navbar */
.navbar {
  min-height: 64px;
  background: rgba(255, 255, 255, 0.8) !important;
  background: linear-gradient(105deg, rgba(255,255,255,.98), rgba(239,246,255,.96)) !important;
  border-bottom: 1px solid #e2e8f0 !important;
  padding: 0 1.5rem !important;
  box-shadow: none !important;
}

.brand-logo {
  height: 44px !important; /* Make the logo larger to fill the whitespace */
  margin-right: 0px !important;
  object-fit: contain;
}

.navbar-brand {
  display: flex;
  align-items: center;
  padding: 0;
}

.navbar-brand .fw-bold,
.navbar-brand span.fw-bold {
  display: none !important; /* Hide brand text as requested */
}

.navbar-nav {
  gap: 6px;
}

.nav-link {
  font-weight: 500;
  color: #4b5563 !important;
  padding: 0.75rem 1rem !important;
  border-radius: 4px !important;
  font-size: 0.875rem !important;
  transition: all 0.15s ease !important;
  border: none !important;
  border-bottom: 2px solid transparent !important;
}

.nav-link:hover {
  color: #000000 !important;
  background-color: transparent !important;
  border-bottom: 2px solid #cbd5e1 !important;
}

.nav-link.active {
  color: #0051c3 !important;
  background-color: transparent !important;
  border-bottom: 2px solid #0051c3 !important;
  font-weight: 600 !important;
}

@media (max-width: 991.98px) {
  .navbar-collapse {
    background: #ffffff;
    border-top: 1px solid #e2e8f0;
    margin-top: 0.5rem;
    padding: 0.5rem 0;
  }
  .navbar-nav {
    gap: 2px;
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
  }
  .nav-link {
    border-bottom: none !important;
    border-left: 3px solid transparent !important;
    padding: 0.6rem 1.25rem !important;
  }
  .nav-link:hover {
    border-bottom: none !important;
    border-left: 3px solid #cbd5e1 !important;
  }
  .nav-link.active {
    border-bottom: none !important;
    border-left: 3px solid #0051c3 !important;
  }
}

/* Toggler overrides to remove default focus border and box-shadow */
.navbar-toggler {
  border: none !important;
  display: inline-grid;
  place-items: center;
  padding: 0 !important;
  line-height: 1;
}

.navbar-toggler-icon { display: block; margin: 0 !important; }

.navbar-toggler:focus,
.navbar-toggler:active,
.navbar-toggler-icon:focus {
  outline: none !important;
  box-shadow: none !important;
}



/* Cards */
.card, .stat-card, .chart-card {
  background: var(--card-bg);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.card:hover, .stat-card:hover, .chart-card:hover {
  box-shadow: var(--shadow-md);
}

.card-header {
  background: transparent !important;
  border-bottom: 1px solid var(--border-color) !important;
  padding: 1rem 1.25rem;
}

.card-body {
  padding: 1.25rem;
}

/* Buttons */
.btn {
  font-weight: 500;
  border-radius: var(--radius-sm) !important;
  padding: 0.45rem 1.1rem;
  font-size: 0.85rem;
  transition: all 0.15s ease;
  letter-spacing: 0.01em;
}

.btn-primary {
  background: #0051c3; /* Cloudflare Deep Blue */
  border: 1px solid #0051c3;
  color: white;
  box-shadow: none;
}

.btn-primary:hover {
  background: #0043a5;
  border-color: #0043a5;
  color: white;
}

/* Forms */
.form-control, .form-select {
  border-radius: var(--radius-sm);
  border-color: #dadce0;
  padding: 0.45rem 0.75rem;
  font-size: 0.9rem;
  transition: border-color 0.15s, box-shadow 0.15s;
}

.form-control:focus, .form-select:focus {
  border-color: var(--primary-color);
  box-shadow: 0 0 0 3px rgba(26, 115, 232, 0.15);
}

.form-label {
  font-size: 11px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  color: #4b5563 !important; /* Muted Slate Gray */
  margin-bottom: 4px !important;
  display: inline-block;
}

/* Dashboard Stats */
.stat-title {
  color: var(--text-muted);
  font-size: 0.875rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.stat-value {
  font-size: 2rem;
  font-weight: 700;
  margin-top: 0.5rem;
  color: var(--text-main);
  letter-spacing: -0.02em;
}

/* Charts */
.chart-box {
  position: relative;
  height: 320px;
}

@media (max-width: 991px) {
  .chart-box { height: 260px; }
}

/* Checkbox Grid (Custom) */
.checkbox-grid {
  max-height: 180px;
  overflow: auto;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  padding: 0.75rem;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 0.5rem;
  background: var(--bg-color);
}

.form-check {
  margin-bottom: 0;
  display: flex;
  align-items: center;
  padding-left: 1.75rem;
}

.form-check-input {
  margin-top: 0;
  cursor: pointer;
}

.form-check-label {
  font-size: 0.85rem;
  cursor: pointer;
  user-select: none;
  word-break: break-word;
  line-height: 1.3;
  margin-left: 0.35rem;
}

/* Badges */
.badge {
  font-weight: 500;
  padding: 0.35em 0.65em;
  border-radius: 6px;
}

.role-badge {
  margin-right: 0.2rem;
  margin-bottom: 0.2rem;
  font-size: 11px !important;
  font-weight: 600 !important;
  background-color: #f1f5f9 !important;
  color: #334155 !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 100px !important;
  padding: 0.25em 0.65em !important;
}

.status-badge-SUCCESS { background: #dcfce7 !important; color: #15803d !important; border: 1px solid #bbf7d0 !important; font-weight: 600 !important; }
.status-badge-FAILED { background: #fee2e2 !important; color: #b91c1c !important; border: 1px solid #fca5a5 !important; font-weight: 600 !important; }
.status-badge-NOT_PROCESSED { background: #f1f5f9 !important; color: #475569 !important; border: 1px solid #cbd5e1 !important; font-weight: 600 !important; }

/* Table styling */
.card-body .table-responsive {
  margin-left: -1.25rem !important;
  margin-right: -1.25rem !important;
  width: calc(100% + 2.50rem) !important;
  border: none !important;
  box-shadow: none !important;
}

.table-responsive {
  width: 100%;
  overflow-x: auto;
  border: none !important; /* Remove inner border to avoid box-in-box double border look */
  background: transparent !important;
  box-shadow: none !important;
}

.table {
  margin-bottom: 0;
  border-collapse: collapse !important;
}

/* Disable zebra striping globally across Bootstrap and Datatables */
.table tbody tr,
.table tbody tr.odd,
.table tbody tr.even,
.table tbody tr td,
.table tbody tr.odd td,
.table tbody tr.even td,
#candidatesTable tbody tr td,
#screeningsTable tbody tr td {
  background-color: #ffffff !important;
}

/* Highly professional flat table headers matching Cloudflare */
.table thead th, #candidatesTable thead th, #screeningsTable thead th {
  background-color: var(--table-header-bg) !important;
  color: #4b5563 !important; /* Slate/Gray 600 */
  font-weight: 600 !important;
  font-size: 12px !important;
  text-transform: uppercase;
  letter-spacing: 0.03em !important;
  padding: 12px 16px !important;
  border-bottom: 1px solid var(--table-border-color) !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important; /* Clean borderless headers */
  white-space: nowrap;
}

/* Add extra left/right padding to first/last columns so text aligns with card elements */
.table thead th:first-child,
.table tbody td:first-child,
#candidatesTable thead th:first-child,
#candidatesTable tbody td:first-child,
#screeningsTable thead th:first-child,
#screeningsTable tbody td:first-child {
  padding-left: 1.25rem !important;
}

.table thead th:last-child,
.table tbody td:last-child,
#candidatesTable thead th:last-child,
#candidatesTable tbody td:last-child,
#screeningsTable thead th:last-child,
#screeningsTable tbody td:last-child {
  padding-right: 1.25rem !important;
}

.table tbody td, #candidatesTable tbody td, #screeningsTable tbody td {
  padding: 12px 16px !important; /* Cloudflare spacious padding */
  vertical-align: top !important; /* Top align for clean text block look */
  border-top: none !important;
  border-bottom: 1px solid var(--table-row-border) !important;
  border-left: none !important; /* Remove all vertical dividers */
  border-right: none !important;
  color: var(--text-main);
  font-size: 13px !important; /* Compact, clean, and professional */
  font-weight: 400 !important;
}

/* Disable hover backgrounds and outlines entirely as requested - FIXED to show row highlight */
.table-hover tbody tr:hover td, 
#candidatesTable tbody tr:hover td, 
#screeningsTable tbody tr:hover td {
  background-color: #f8fafc !important; /* Show soft gray hover row highlight */
}

.dataTables_length select {
  min-width: 80px !important;
  padding-right: 1.5rem !important;
}

.table tbody tr, #candidatesTable tbody tr, #screeningsTable tbody tr {
  height: auto !important;
}

/* Custom cell compact width & line clamp styling */
.email-cell {
  max-width: 130px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: inline-block;
  vertical-align: middle;
}

.phone-cell {
  white-space: nowrap;
}



.ai-eval-text {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 13px;
  line-height: 1.4;
  max-height: 2.8em; /* Exactly 2 lines */
  min-width: 280px;
  white-space: normal;
  cursor: help;
}

.evaluation-note-cell {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 13px;
  line-height: 1.4;
  max-height: 2.8em; /* Exactly 2 lines */
  min-width: 140px;
  max-width: 250px;
  white-space: normal;
  word-break: break-word;
  color: var(--text-muted);
  cursor: help;
}

.email-col {
  max-width: 180px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.date-col {
  white-space: nowrap;
}

.table-hover tbody tr:hover, #candidatesTable tbody tr:hover, #screeningsTable tbody tr:hover {
  background-color: #f8fafc !important;
}

/* DataTables pagination tweaks */
.dataTables_wrapper .dataTables_paginate .paginate_button {
  border-radius: var(--radius-sm);
  padding: 0.25rem 0.75rem;
  margin-left: 0.25rem;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current {
  background: var(--primary-color) !important;
  color: white !important;
  border-color: var(--primary-color) !important;
}

/* Login Page */
.login-page {
  min-height: 100vh;
  background: linear-gradient(rgba(15, 23, 42, 0.65), rgba(15, 23, 42, 0.85)), url('/assets/img/login_bg.png') no-repeat center center / cover;
  display: flex;
  align-items: center;
}

.login-page .card {
  border-radius: 8px; /* Standardize with Cloudflare's sharp, neat radius */
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.3), 0 10px 10px -5px rgba(0, 0, 0, 0.3);
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.brand-logo-lg {
  height: 80px;
  object-fit: contain;
  margin-bottom: 1rem;
}

/* Import Console */
.import-console {
  height: 400px;
  overflow: auto;
  font-family: 'JetBrains Mono', 'Fira Code', Consolas, monospace;
  font-size: 13px;
  line-height: 1.5;
  background: #1e293b;
  color: #f8fafc;
  padding: 1rem;
  border-radius: var(--radius-md);
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.2);
}

.import-log-line { white-space: pre-wrap; word-break: break-word; margin-bottom: 4px; border-bottom: 1px solid rgba(255,255,255,0.05); padding-bottom: 4px; }
.import-log-normal { color: #cbd5e1; }
.import-log-progress { color: #38bdf8; }
.import-log-warn { color: #fbbf24; }
.import-log-error { color: #f87171; }
.import-log-success { color: #34d399; font-weight: 600; }

/* DB Grid */
.db-grid-wrap {
  max-height: 70vh;
  overflow: auto;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  background: #fff;
  box-shadow: var(--shadow-sm);
}

.db-grid {
  margin-bottom: 0;
  font-size: 0.85rem;
}

.db-grid thead th.db-th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--bg-color);
  white-space: nowrap;
  font-weight: 600;
  color: var(--text-muted);
  border-bottom: 1px solid var(--border-color);
  padding: 0.75rem;
}

.db-grid .db-td {
  vertical-align: top;
  min-width: 120px;
  max-width: 300px;
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid var(--border-color);
}

.db-cell-text {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.4;
}

.db-cell-hover {
  display: none;
  position: absolute;
  left: 0;
  top: 100%;
  margin-top: 8px;
  min-width: 300px;
  max-width: 500px;
  max-height: 300px;
  overflow: auto;
  background: rgba(15, 23, 42, 0.95);
  backdrop-filter: blur(8px);
  color: #f8fafc;
  border-radius: var(--radius-md);
  padding: 12px;
  box-shadow: var(--shadow-lg);
  z-index: 50;
  font-size: 0.85rem;
  line-height: 1.5;
}

.db-grid .db-action-th, .db-grid .db-action-td {
  position: sticky;
  right: 0;
  z-index: 1;
  background: #fff;
  min-width: 90px;
  text-align: center;
  border-left: 1px solid var(--border-color);
}

.db-grid thead .db-action-th {
  z-index: 3;
  background: var(--bg-color);
}

/* Progress Bar Styling */
.progress {
  background-color: #e2e8f0 !important;
  border-radius: var(--radius-sm) !important;
  overflow: hidden;
}

.progress-bar {
  background: var(--primary-color) !important;
  border-radius: var(--radius-sm) !important;
  transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* Custom premium styles for Datatable column values to force strict identical row heights */
.name-cell {
  max-width: 150px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: inline-block;
  vertical-align: middle;
  font-weight: 600;
}

.campaign-cell {
  max-width: 260px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: inline-block;
  vertical-align: middle;
}

.source-cell {
  max-width: 80px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: inline-block;
  vertical-align: middle;
}

.role-cell {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 13px;
  line-height: 1.4;
  height: 48px; /* Safe fixed height for exactly 2 lines of text/tags */
  min-width: 180px;
  max-width: 260px;
  white-space: normal;
  cursor: help;
}

/* Sleek, professional buttons with standard moderate border-radius */
.btn {
  border-radius: var(--radius-sm) !important; /* 8px - matching input elements! */
  font-weight: 500;
  transition: all 0.2s ease;
}

.btn-outline-primary {
  border-color: rgba(0, 81, 195, 0.15) !important;
  background-color: rgba(0, 81, 195, 0.05) !important;
  color: #0051c3 !important;
}
.btn-outline-primary:hover {
  background-color: #0051c3 !important;
  border-color: #0051c3 !important;
  color: white !important;
}

.btn-outline-secondary {
  border-color: rgba(71, 85, 105, 0.15) !important;
  background-color: rgba(71, 85, 105, 0.05) !important;
  color: #475569 !important;
}
.btn-outline-secondary:hover {
  background-color: #475569 !important;
  border-color: #475569 !important;
  color: white !important;
}

.btn-outline-warning {
  border-color: rgba(202, 138, 4, 0.15) !important;
  background-color: rgba(202, 138, 4, 0.05) !important;
  color: #ca8a04 !important;
}
.btn-outline-warning:hover {
  background-color: #ca8a04 !important;
  border-color: #ca8a04 !important;
  color: white !important;
}

.btn-outline-danger {
  border-color: rgba(220, 38, 38, 0.15) !important;
  background-color: rgba(220, 38, 38, 0.05) !important;
  color: #dc2626 !important;
}
.btn-outline-danger:hover {
  background-color: #dc2626 !important;
  border-color: #dc2626 !important;
  color: white !important;
}

/* Compact modern Datatables pagination layout overrides to fix large gaps */
.dataTables_wrapper .dataTables_paginate .pagination,
.dataTables_paginate .pagination {
  gap: 0 !important;
  margin: 0 !important;
  display: inline-flex !important;
  width: auto !important;
  justify-content: flex-end !important;
  float: right !important;
}

/* Reset Datatables list wrapper padding/margin that causes large button gaps */
.dataTables_wrapper .dataTables_paginate .paginate_button {
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
}

.dataTables_wrapper .dataTables_paginate .page-item,
.dataTables_paginate .page-item {
  margin: 0 2px !important;
  flex: 0 0 auto !important;
}

.dataTables_wrapper .dataTables_paginate .page-link,
.dataTables_paginate .page-link {
  padding: 6px 12px !important;
  font-size: 0.85rem !important;
  border-radius: 6px !important;
  color: var(--text-muted) !important;
  border: 1px solid var(--border-color) !important;
  background-color: var(--card-bg) !important;
  transition: all 0.15s ease;
  box-shadow: none !important;
}

.dataTables_wrapper .dataTables_paginate .page-link:hover,
.dataTables_paginate .page-link:hover {
  background-color: #f1f5f9 !important;
  border-color: #cbd5e1 !important;
  color: var(--text-main) !important;
}

.dataTables_wrapper .dataTables_paginate .page-item.active .page-link,
.dataTables_paginate .page-item.active .page-link {
  background-color: var(--primary-color) !important;
  border-color: var(--primary-color) !important;
  color: white !important;
}

/* Import Console Styles */
.import-console {
  font-family: 'Courier New', Courier, monospace;
  font-size: 12px;
  max-height: 250px;
  overflow-y: auto;
  line-height: 1.5;
  background-color: #0f172a !important; /* Premium dark slate background instead of generic dark */
  border-color: #334155 !important;
}

.import-log-line {
  padding: 2px 4px;
  border-radius: 4px;
}

.import-log-normal {
  color: #e2e8f0; /* Soft light gray text */
}

.import-log-progress {
  color: #3b82f6; /* Blue */
}

.import-log-success {
  color: #4ade80; /* Soft green */
  font-weight: 600;
}

.import-log-error {
  color: #f87171; /* Soft red */
  background-color: rgba(220, 38, 38, 0.1);
  font-weight: 600;
}

.import-log-warn {
  color: #fbbf24; /* Soft yellow/orange */
  background-color: rgba(202, 138, 4, 0.1);
}

.import-log-skip {
  color: #94a3b8; /* Slate-400 muted text for skipped rows */
  background-color: rgba(71, 85, 105, 0.1);
  font-style: italic;
}

/* Candidate Page Tighter Font Size & Professional Filter Optimizations */
#filterPanel .form-control, 
#filterPanel .form-select, 
#filterPanel .btn {
  font-size: 12px !important;
  padding: 0.35rem 0.5rem !important;
  border-color: #cbd5e1;
}

#filterPanel .form-label {
  font-size: 10px !important;
}

.checkbox-grid {
  max-height: 120px !important; /* Make multi-select grid more compact */
  background: #f8fafc !important;
}

.checkbox-grid .form-check-label {
  font-size: 11px !important;
}

.card::before, .stat-card::before, .chart-card::before {
  content: '';
  display: block;
  height: 2px;
  margin: -1px -1px 0;
  border-radius: var(--radius-md) var(--radius-md) 0 0;
  background: linear-gradient(90deg, rgba(37,99,235,.72), rgba(56,189,248,.32), transparent 75%);
  pointer-events: none;
}

.modal-content {
  border: 1px solid #dbeafe;
  background: linear-gradient(145deg, #fff 0%, #fbfdff 100%);
}

.candidate-ai-metrics { display: grid; line-height: 1.1; }
.candidate-ai-metrics span { margin-top: .18rem; color: #64748b; font-size: 10px; white-space: nowrap; }

@media (min-width: 1200px) {
  .candidate-filter-eighth {
    flex: 0 0 12.5%;
    max-width: 12.5%;
  }
}

/* Mobile workspace: shared across every authenticated page. */
@media (max-width: 767.98px) {
  html, body {
    max-width: 100%;
    overflow-x: hidden;
  }

  .navbar > .container-fluid {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  .brand-logo {
    max-width: 112px;
    max-height: 34px;
  }

  main.container-fluid,
  main.container,
  .dashboard-wrap {
    padding: 1rem !important;
  }

  main h3, main h4 {
    font-size: 1.2rem;
    line-height: 1.35;
  }

  .page-heading,
  main > .d-flex.justify-content-between:not(.navbar) {
    align-items: stretch !important;
    flex-direction: column;
    gap: .75rem;
  }

  .page-heading > .btn,
  main > .d-flex.justify-content-between > .btn,
  main > .d-flex.justify-content-between > a.btn {
    width: 100%;
  }

  .card-header,
  .card-body {
    padding: .9rem !important;
  }

  .card-header.d-flex {
    align-items: stretch !important;
    flex-direction: column;
    gap: .65rem;
  }

  .card-header .d-flex[style*="min-width"] {
    min-width: 0 !important;
    width: 100%;
  }

  .btn-lg {
    font-size: .9rem;
    padding: .6rem .9rem;
  }

  .modal-dialog {
    margin: 0;
    min-height: 100%;
    max-width: none;
  }

  .modal-content {
    min-height: 100vh;
    border: 0;
    border-radius: 0;
  }

  .modal-header, .modal-body, .modal-footer {
    padding: 1rem;
  }

  .modal-footer {
    gap: .5rem;
  }

  .modal-footer > .btn {
    flex: 1 1 auto;
    margin: 0;
  }

  .table-responsive {
    margin-left: -.9rem !important;
    margin-right: -.9rem !important;
    padding: 0 .9rem;
    width: calc(100% + 1.8rem);
  }

  .dataTables_wrapper .row:first-child,
  .dataTables_wrapper .row:last-child {
    row-gap: .65rem;
  }

  .dataTables_length,
  .dataTables_filter,
  .dataTables_info,
  .dataTables_paginate {
    float: none !important;
    text-align: left !important;
    width: 100%;
  }

  .dataTables_filter label {
    width: 100%;
  }

  .dataTables_filter input {
    display: block;
    margin: .35rem 0 0 !important;
    width: 100% !important;
  }

  .dataTables_paginate .pagination {
    flex-wrap: wrap;
    justify-content: center !important;
  }

  .filter-row {
    display: none;
  }

  .chart-box,
  .chart-box[style] {
    height: 240px !important;
  }

  #customDateRange {
    flex-wrap: wrap;
    width: 100%;
  }

  #customDateRange input[type="date"] {
    flex: 1 1 120px;
    width: auto !important;
  }

  .import-console {
    height: 280px !important;
  }

  .db-grid-wrap {
    max-height: 60vh;
  }

  /* Candidates */
  .candidates-page .page-heading {
    flex-direction: row !important;
    align-items: center !important;
    margin-bottom: .65rem !important;
  }

  .candidates-page .page-heading .btn {
    width: auto !important;
    white-space: nowrap;
  }

  #filterPanel .card-body {
    padding: .9rem !important;
  }

  #filterPanel .form-control,
  #filterPanel .form-select {
    min-height: 38px;
    font-size: 13px !important;
  }

  #filterPanel .row.g-3.mt-1 {
    margin-top: .25rem !important;
  }

  .checkbox-grid {
    grid-template-columns: 1fr !important;
    max-height: 145px !important;
  }

  .candidate-filter-actions {
    flex-direction: column;
  }

  .candidate-filter-primary-actions,
  .candidate-screening-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
  }

  .candidate-filter-actions .btn {
    justify-content: center;
    min-height: 40px;
    padding: .45rem .5rem;
  }

  .candidates-page > .card:last-child .card-body {
    padding-top: .75rem !important;
  }

  .candidates-table tbody td {
    font-size: 12px !important;
    vertical-align: middle;
  }

  table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before {
    position: static;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: .35rem;
  }

  #candidateDetailBody [style*="height: 600px"] {
    height: 45vh !important;
  }
}

/* Candidates & Screenings Tables Font Sizing and Padding Reductions to prevent responsive wrap */
.candidates-table thead th {
  font-size: 11px !important;
  padding: 6px 10px !important;
  font-weight: 700 !important;
}

.candidates-table tbody td {
  font-size: 11px !important;
  padding: 6px 10px !important;
}

.candidates-table .name-cell,
.candidates-table .email-cell,
.candidates-table .phone-cell,
.candidates-table .campaign-cell,
.candidates-table .evaluation-note-cell {
  font-size: 11px !important;
}

.candidates-table .role-cell {
  font-size: 11px !important;
  height: auto !important;
  min-height: 32px;
  max-height: 48px;
}

.candidates-table .role-badge {
  font-size: 10px !important;
  padding: 0.15em 0.5em !important;
}

/* 2026 visual refresh */
main {
  max-width: 1680px;
  margin-inline: auto;
}

/* Candidate workspace must use every available desktop pixel. */
main.candidates-page {
  width: 100%;
  max-width: none !important;
}

.candidates-page > .card:last-child,
.candidates-page > .card:last-child .card-body,
.candidates-page .dataTables_wrapper {
  min-width: 0;
  width: 100%;
}

.candidates-page > .card:last-child .table-responsive {
  overflow-x: clip !important;
}

.candidates-page #candidatesTable {
  width: 100% !important;
  table-layout: fixed;
}

.candidates-page #candidatesTable thead th,
.candidates-page #candidatesTable tbody td {
  padding: 5px 7px !important;
  vertical-align: middle !important;
}

.candidates-page #candidatesTable tbody tr {
  height: 58px !important;
}

.candidate-identity-cell { display: grid; min-width: 0; line-height: 1.15; }
.candidate-identity-cell .name-cell { max-width: 100%; font-size: 12px !important; }
.candidate-row-meta { margin-top: 2px; color: #64748b; font-size: 9px; }
.candidate-row-contact { display:grid; gap:2px; margin-top:5px; overflow:visible; color:#526174; font-size:11px; white-space:normal; }
.candidate-row-contact i { margin-right: 3px; color: #2563eb; }

.candidate-metric-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; }
.metric-chip {
  display: grid;
  grid-template-columns: 14px 1fr;
  grid-template-rows: auto auto;
  align-items: center;
  min-width: 0;
  padding: 4px 5px;
  border: 1px solid transparent;
  border-radius: 6px;
  line-height: 1;
}
.metric-chip > i { grid-row: 1 / 3; font-size: 11px; }
.metric-chip .metric-value { overflow: hidden; font-size: 11px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.metric-chip small { margin-top: 2px; font-size: 7px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.metric-chip.grade-elite { color: #14532d; background: #bbf7d0; border-color: #86efac; }
.metric-chip.grade-good { color: #166534; background: #dcfce7; border-color: #bbf7d0; }
.metric-chip.grade-mid { color: #854d0e; background: #fef9c3; border-color: #fde68a; }
.metric-chip.grade-low { color: #7f1d1d; background: #fee2e2; border-color: #fecaca; }
.metric-chip.grade-na { color: #64748b; background: #f1f5f9; border-color: #e2e8f0; }

.candidates-page .role-cell { min-width: 0; max-width: 100%; min-height: 0; height: 42px; }
.candidates-page .campaign-cell { max-width: 100%; }
.candidates-page .evaluation-note-cell { min-width: 0; max-width: 100%; font-size: 10px !important; line-height: 1.25; max-height: 2.5em; }
.evaluation-note-cell b { margin-right: 3px; color: #2563eb; font-size: 8px; text-transform: uppercase; }
.evaluation-note-cell.has-hr-note { color: #1e3a8a; }
.empty-value { color: #a0aec0; }
.received-date-cell { display: grid; line-height: 1.05; white-space: nowrap; }
.received-date-cell b { color: #334155; font-size: 10px; }
.received-date-cell b { color:#0f172a; font-size:13px; line-height:1.2; }
.received-date-cell small { margin-top: 3px; color: #718096; font-size: 9px; }

/* Flat, icon-led navigation. */
.navbar-nav .nav-link { display: flex; align-items: center; gap: 7px; position: relative; }
.navbar-nav .nav-link i { font-size: 14px; line-height: 1; }
.navbar-nav .nav-link::after { content: ''; position: absolute; right: 10px; bottom: 0; left: 10px; height: 2px; background: transparent; }
.navbar-nav .nav-link:hover,
.navbar-nav .nav-link.active { border-bottom-color: transparent !important; }
.navbar-nav .nav-link.active::after { background: #2563eb; }

/* Candidate detail: structured and horizontally safe. */
.candidate-detail-dialog { width: min(1180px, calc(100vw - 32px)); max-width: none; }
.candidate-detail-dialog .modal-content,
.candidate-detail-dialog .modal-body,
.candidate-detail-shell { min-width: 0; overflow-x: hidden; }
.candidate-detail-dialog .modal-body { padding: 0; }
.candidate-detail-shell { display: grid; gap: 12px; padding: 18px; }
.candidate-detail-hero { display: flex; align-items: center; gap: 14px; min-width: 0; padding: 16px; border: 1px solid #dbeafe; border-radius: 8px; background: linear-gradient(115deg, #eff6ff, #fff 68%); }
.candidate-detail-avatar { display: grid; place-items: center; flex: 0 0 52px; height: 52px; border-radius: 8px; background: #1d4ed8; color: #fff; font-size: 16px; font-weight: 800; }
.candidate-detail-title { flex: 1; min-width: 0; }
.candidate-detail-kicker { color: #64748b; font-size: 10px; font-weight: 650; letter-spacing: .04em; text-transform: uppercase; }
.candidate-detail-title h3 { margin: 2px 0 5px; overflow: hidden; font-size: 22px; text-overflow: ellipsis; white-space: nowrap; }
.candidate-detail-contact { display: flex; flex-wrap: wrap; gap: 12px; font-size: 11px; }
.candidate-detail-contact a { color: #475569; }
.candidate-detail-contact i { margin-right: 5px; color: #2563eb; }
.candidate-detail-actions { display: flex; align-items: center; gap: 8px; }
.candidate-detail-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.candidate-detail-metrics .metric-chip { grid-template-columns: 24px 1fr; min-height: 58px; padding: 9px 12px; }
.candidate-detail-metrics .metric-chip > i { font-size: 18px; }
.candidate-detail-metrics .metric-chip .metric-value { font-size: 17px; }
.candidate-detail-metrics .metric-chip small { font-size: 9px; }
.candidate-detail-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 12px; min-width: 0; }
.candidate-detail-panel { min-width: 0; padding: 14px; border: 1px solid #e2e8f0; border-radius: 8px; background: #fff; }
.candidate-detail-panel h6 { display: flex; align-items: center; gap: 7px; margin: 0 0 10px; color: #1e293b; font-size: 12px; }
.candidate-detail-panel h6 i { color: #2563eb; }
.candidate-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px; margin: 0 0 10px; }
.candidate-facts div { min-width: 0; }
.candidate-facts dt { color: #718096; font-size: 8px; letter-spacing: .05em; text-transform: uppercase; }
.candidate-facts dd { margin: 2px 0 0; overflow-wrap: anywhere; color: #25364a; font-size: 11px; font-weight: 600; }
.candidate-detail-tags { display: flex; flex-wrap: wrap; gap: 3px; }
.ai-panel { background: linear-gradient(145deg, #f8fbff, #fff); }
.ai-panel p, .topcv-note p { margin: 0 0 10px; color: #475569; font-size: 11px; line-height: 1.5; overflow-wrap: anywhere; }
.candidate-panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.candidate-panel-heading h6 { margin: 0; }
.candidate-panel-heading > span { color: #64748b; font-size: 9px; }
.candidate-note-editor textarea { min-height: 72px; resize: vertical; }
.candidate-cv-text .candidate-panel-heading input { width: min(260px, 45%); min-height: 32px; }
.candidate-cv-text-content { height: min(46vh, 480px); overflow: auto; padding: 12px; border: 1px solid #e8eef7; border-radius: 6px; background: #fbfdff; font-size: 11px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-word; }
.candidate-detail-footer-actions { display: flex; justify-content: flex-end; }

.card:hover, .stat-card:hover, .chart-card:hover {
  border-color: #cbd5e1;
}

.card-header {
  background: linear-gradient(180deg, #fff, #fbfdff) !important;
}

.btn-primary {
  background: #2563eb;
  border-color: #2563eb;
  box-shadow: none;
}

.btn-primary:hover {
  background: #1d4ed8;
  border-color: #1d4ed8;
  box-shadow: none;
}

.form-control, .form-select {
  min-height: 40px;
  background-color: #fff;
}

.table {
  --bs-table-striped-bg: #f8fafc;
  --bs-table-hover-bg: #eff6ff;
}

.table thead th, #candidatesTable thead th, #screeningsTable thead th {
  color: #475569 !important;
  letter-spacing: .055em;
}

.badge, .status-badge, .score-badge {
  border-radius: 999px !important;
}

.progress {
  border-radius: 999px;
  background: #e8eef7;
  overflow: hidden;
}

.candidate-mobile-list {
  display: none;
}

@media (max-width: 767.98px) {
  body {
    background: linear-gradient(160deg, #f8fbff 0%, #eef5ff 55%, #f7faff 100%);
  }

  .navbar {
    min-height: 60px;
    padding: 0 !important;
  }

  .navbar-toggler {
    width: 44px;
    height: 44px;
    border-radius: 4px !important;
    background: #eff6ff;
    border: 1px solid #dbeafe !important;
  }

  .navbar-collapse {
    margin-inline: -1rem;
    padding: .75rem 1rem 1rem;
    box-shadow: 0 4px 10px rgba(15, 23, 42, .08);
  }

  .nav-link {
    padding: .72rem .9rem !important;
    border-left: 0 !important;
    border-radius: 4px !important;
  }

  .nav-link.active {
    background: #eff6ff !important;
    border-left: 0 !important;
  }

  main h4, .page-title {
    font-size: 1.45rem !important;
  }

  .card, .stat-card, .chart-card {
    border-radius: 6px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
  }

  .card:hover, .stat-card:hover, .chart-card:hover {
    transform: none;
  }

  .candidate-mobile-list {
    display: grid;
    gap: .55rem;
    margin: .55rem 0 .75rem;
  }

  .candidates-page #candidatesTable {
    display: none !important;
  }

  .candidates-page .card:last-child .table-responsive {
    overflow: visible;
  }

  .candidate-mobile-card {
    position: relative;
    overflow: hidden;
    background: #fff;
    border: 1px solid #dce5f2;
    border-radius: 6px;
    padding: .62rem .68rem;
    box-shadow: 0 2px 8px rgba(15, 23, 42, .045);
  }

  .candidate-mobile-head {
    display: flex;
    align-items: center;
    gap: .55rem;
  }

  .candidate-avatar {
    display: grid;
    place-items: center;
    flex: 0 0 34px;
    height: 34px;
    border-radius: 5px;
    background: #eff6ff;
    color: #1d4ed8;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .04em;
  }

  .candidate-mobile-identity {
    min-width: 0;
    flex: 1;
  }

  .candidate-mobile-name {
    display: block;
    color: #0f172a;
    font-size: .98rem;
    font-weight: 750;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .candidate-mobile-id {
    margin-top: .15rem;
    color: #64748b;
    font-size: .72rem;
  }

  .candidate-select {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border-radius: 4px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
  }

  .candidate-detail-icon {
    display: grid;
    place-items: center;
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    padding: 0;
    color: #2563eb;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 5px;
  }

  .candidate-metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin-top: .45rem;
    border: 1px solid #e7eef8;
    border-radius: 6px;
    background: linear-gradient(100deg, #f8fbff, #f3f8ff);
  }

  .candidate-metrics > .metric-chip {
    display: grid;
    grid-template-columns: 14px 1fr;
    grid-template-rows: 1fr;
    align-items: center;
    gap: .18rem;
    min-width: 0;
    padding: .28rem .35rem;
    border-right: 1px solid #e7eef8;
    border-top: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 0;
  }

  .candidate-metrics > .metric-chip:last-child { border-right: 0; }
  .candidate-metrics .metric-chip > i { grid-row: auto; font-size: .72rem; }
  .candidate-metrics .metric-value { font-size: .72rem; }
  .candidate-metrics .metric-chip small { display: none; }

  .candidate-contact-grid {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    gap: .35rem;
    margin-top: .42rem;
  }

  .candidate-contact {
    display: flex;
    align-items: center;
    gap: .4rem;
    min-width: 0;
    padding: .38rem .45rem;
    border-radius: 7px;
    background: #f6f9fd;
    color: #334155;
    font-size: .72rem;
  }

  .candidate-contact i {
    flex: 0 0 auto;
    color: #2563eb;
  }

  .candidate-contact span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .candidate-contact.is-empty {
    color: #94a3b8;
    pointer-events: none;
  }

  .candidate-mobile-section {
    margin-top: .34rem;
  }

  .candidate-mobile-label {
    margin-bottom: .28rem;
    color: #64748b;
    font-size: .64rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
  }

  .candidate-mobile-tags {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem;
  }

  .candidate-mobile-tags span {
    padding: .16rem .38rem;
    border: 1px solid #bfdbfe;
    border-radius: 999px;
    background: #eff6ff;
    color: #1e40af;
    font-size: .66rem;
    font-weight: 650;
  }

  .candidate-mobile-tags .more-tag {
    border-color: #e2e8f0;
    background: #f8fafc;
    color: #475569;
  }

  .candidate-mobile-campaign,
  .candidate-mobile-note {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    margin-top: .34rem;
    color: #475569;
    font-size: .75rem;
    line-height: 1.35;
  }

  .candidate-mobile-note.critical-note {
    background: #eff6ff;
    color: #1e3a8a;
    border-left: 2px solid #3b82f6;
  }

  .candidate-mobile-note.critical-note i { color: #2563eb; }

  .candidate-mobile-campaign i,
  .candidate-mobile-note i {
    color: #64748b;
  }

  .candidate-mobile-campaign span,
  .candidate-mobile-note span {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
  }

  .candidate-mobile-note {
    padding: .3rem .45rem;
    border-radius: 7px;
    background: #fffbeb;
    color: #78350f;
  }

  .candidate-mobile-note i {
    color: #d97706;
  }

  .candidate-mobile-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-top: .55rem;
    padding-top: .5rem;
    border-top: 1px solid #edf2f7;
    color: #64748b;
    font-size: .72rem;
  }

  .candidate-mobile-footer .btn {
    min-height: 32px;
    padding: .28rem .65rem;
  }

  .navbar-nav .nav-link::after { display: none; }
  .navbar-nav .nav-link.active { background: #eff6ff !important; box-shadow: inset 3px 0 #2563eb; }

  .candidate-detail-dialog { width: calc(100vw - 12px); margin: 6px auto; }
  .candidate-detail-shell { gap: 8px; padding: 8px; }
  .candidate-detail-hero { align-items: flex-start; gap: 9px; padding: 10px; }
  .candidate-detail-avatar { flex-basis: 38px; height: 38px; font-size: 12px; }
  .candidate-detail-title h3 { font-size: 16px; }
  .candidate-detail-contact { display: grid; gap: 3px; }
  .candidate-detail-actions { display: grid; justify-items: end; }
  .candidate-detail-actions .status-badge { font-size: 8px; }
  .candidate-detail-metrics { gap: 4px; }
  .candidate-detail-metrics .metric-chip { grid-template-columns: 17px 1fr; min-height: 42px; padding: 6px; }
  .candidate-detail-metrics .metric-chip > i { font-size: 13px; }
  .candidate-detail-metrics .metric-chip .metric-value { font-size: 12px; }
  .candidate-detail-metrics .metric-chip small { font-size: 7px; }
  .candidate-detail-grid, .candidate-facts { grid-template-columns: 1fr; }
  .candidate-detail-panel { padding: 10px; }
  .candidate-panel-heading { align-items: flex-start; }
  .candidate-cv-text .candidate-panel-heading { display: grid; }
  .candidate-cv-text .candidate-panel-heading input { width: 100%; }
  .candidate-cv-text-content { height: 42vh; }

  .mobile-empty-state {
    display: grid;
    place-items: center;
    gap: .5rem;
    min-height: 180px;
    color: #94a3b8;
  }

  .mobile-empty-state i {
    font-size: 2rem;
  }

  .candidates-page .dataTables_wrapper > .row:first-child {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr);
    align-items: end;
    gap: .5rem;
    padding: 0 0 .35rem;
  }

  .candidates-page .dataTables_wrapper > .row:first-child > div {
    width: 100%;
    padding: 0;
  }

  .candidates-page .dataTables_length select,
  .candidates-page .dataTables_filter input {
    min-height: 34px !important;
    height: 34px;
  }

  .candidates-page .dataTables_filter input {
    margin-top: 0 !important;
  }

  .candidates-page .dataTables_wrapper > .row:last-child {
    padding-top: .25rem;
  }

  .candidates-page #topInfoContainer {
    display: none;
  }

  .candidates-page .dataTables_filter input {
    display: block !important;
    width: 100% !important;
    margin: .35rem 0 0 !important;
    box-sizing: border-box;
  }

  .dataTables_wrapper .dataTables_filter input {
    display: block !important;
    width: 100% !important;
    margin: .35rem 0 0 !important;
    box-sizing: border-box;
  }

  /* Informative mobile cards for the remaining data-heavy tables. */
  #screeningsTable,
  #screeningsTable tbody,
  #opportunitiesTable,
  #opportunitiesTable tbody,
  .screening-detail-page #candidatesTable,
  .screening-detail-page #candidatesTable tbody {
    display: block;
    width: 100% !important;
  }

  #screeningsTable thead,
  #opportunitiesTable thead,
  .screening-detail-page #candidatesTable thead {
    display: none;
  }

  #screeningsTable tbody tr,
  #opportunitiesTable tbody tr,
  .screening-detail-page #candidatesTable tbody tr {
    display: block;
    margin-bottom: .85rem;
    padding: .85rem;
    border: 1px solid #dce5f2 !important;
    border-radius: 13px;
    background: #fff !important;
    box-shadow: 0 4px 14px rgba(15, 23, 42, .05);
  }

  #screeningsTable tbody td,
  #opportunitiesTable tbody td,
  .screening-detail-page #candidatesTable tbody td {
    display: flex !important;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    width: 100% !important;
    min-width: 0 !important;
    padding: .48rem 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: #334155;
    text-align: right;
    white-space: normal !important;
  }

  #screeningsTable tbody td.dataTables_empty,
  #opportunitiesTable tbody td.dataTables_empty,
  .screening-detail-page #candidatesTable tbody td.dataTables_empty {
    display: grid !important;
    place-items: center;
    min-height: 130px;
    color: #94a3b8;
    text-align: center;
  }

  #screeningsTable tbody td.dataTables_empty::before,
  #opportunitiesTable tbody td.dataTables_empty::before,
  .screening-detail-page #candidatesTable tbody td.dataTables_empty::before {
    content: none;
  }

  #screeningsTable tbody td::before,
  #opportunitiesTable tbody td::before,
  .screening-detail-page #candidatesTable tbody td::before {
    flex: 0 0 32%;
    color: #64748b;
    font-size: .64rem;
    font-weight: 750;
    letter-spacing: .055em;
    text-align: left;
    text-transform: uppercase;
  }

  #screeningsTable tbody td:nth-child(1)::before { content: 'ID'; }
  #screeningsTable tbody td:nth-child(2)::before { content: 'Đợt sàng lọc'; }
  #screeningsTable tbody td:nth-child(3)::before { content: 'Ngày tạo'; }
  #screeningsTable tbody td:nth-child(4)::before { content: 'Tiến độ'; }
  #screeningsTable tbody td:nth-child(5)::before { content: 'Thao tác'; }

  #opportunitiesTable tbody td:nth-child(1)::before { content: 'Cơ hội'; }
  #opportunitiesTable tbody td:nth-child(2)::before { content: 'Khách hàng'; }
  #opportunitiesTable tbody td:nth-child(3)::before { content: 'Hạn nộp'; }
  #opportunitiesTable tbody td:nth-child(4)::before { content: 'Điểm AI'; }
  #opportunitiesTable tbody td:nth-child(5)::before { content: 'Đánh giá'; }
  #opportunitiesTable tbody td:nth-child(6)::before { content: 'Trạng thái'; }
  #opportunitiesTable tbody td:nth-child(7)::before { content: 'Ngày quét'; }
  #opportunitiesTable tbody td:nth-child(8)::before { content: 'Thao tác'; }

  .screening-detail-page #candidatesTable tbody td:nth-child(1)::before { content: 'Ứng viên'; }
  .screening-detail-page #candidatesTable tbody td:nth-child(2)::before { content: 'Email'; }
  .screening-detail-page #candidatesTable tbody td:nth-child(3)::before { content: 'Điện thoại'; }
  .screening-detail-page #candidatesTable tbody td:nth-child(4)::before { content: 'Năm sinh'; }
  .screening-detail-page #candidatesTable tbody td:nth-child(5)::before { content: 'Vai trò'; }
  .screening-detail-page #candidatesTable tbody td:nth-child(6)::before { content: 'Chiến dịch'; }
  .screening-detail-page #candidatesTable tbody td:nth-child(7)::before { content: 'Ghi chú'; }
  .screening-detail-page #candidatesTable tbody td:nth-child(8)::before { content: 'Ngày nhận'; }
  .screening-detail-page #candidatesTable tbody td:nth-child(9)::before { content: 'Trạng thái'; }
  .screening-detail-page #candidatesTable tbody td:nth-child(10)::before { content: 'Điểm AI'; }
  .screening-detail-page #candidatesTable tbody td:nth-child(11)::before { content: 'Nhận xét AI'; }
  .screening-detail-page #candidatesTable tbody td:nth-child(12)::before { content: 'Thao tác'; }

  #screeningsTable tbody td:nth-child(2),
  #opportunitiesTable tbody td:nth-child(1),
  .screening-detail-page #candidatesTable tbody td:nth-child(1) {
    padding-top: 0 !important;
    color: #0f172a;
    font-size: .9rem !important;
    font-weight: 700;
  }

  #screeningsTable tbody td:last-child,
  #opportunitiesTable tbody td:last-child,
  .screening-detail-page #candidatesTable tbody td:last-child {
    margin-top: .3rem;
    padding-top: .7rem !important;
    border-top: 1px solid #edf2f7 !important;
  }

  #screeningsTable tbody td:last-child > div,
  #opportunitiesTable tbody td:last-child > div,
  .screening-detail-page #candidatesTable tbody td:last-child > div {
    justify-content: flex-end;
    flex-wrap: wrap;
  }

  #screeningsTable tbody td .progress,
  .screening-detail-page #candidatesTable tbody td .progress {
    min-width: 100px;
  }

  #opportunitiesTable .text-truncate-2,
  .screening-detail-page #candidatesTable .evaluation-note-cell {
    max-width: 62%;
    text-align: right;
  }
}

.user-color-dot { width: 12px; height: 12px; border-radius: 50%; flex: 0 0 auto; }
.owner-label { display: inline-flex; align-items: center; padding: .22rem .55rem; border-radius: 999px; font-size: .75rem; font-weight: 700; color: var(--owner-color); background: color-mix(in srgb, var(--owner-color) 12%, white); border: 1px solid color-mix(in srgb, var(--owner-color) 28%, white); }
.owner-label i{margin-right:.3rem}.owner-label.is-unassigned{--owner-color:#64748b}.candidate-owner-inline{position:relative;display:flex;align-items:center;margin-top:.35rem;width:max-content}.candidate-owner-select{position:absolute;inset:0;width:100%;opacity:0;cursor:pointer}.candidate-owner-inline:hover .owner-label{filter:brightness(.96);box-shadow:0 0 0 2px rgba(15,23,42,.06)}.candidate-mobile-owner{display:flex;margin-top:.35rem}.candidate-detail-owner{display:flex;align-items:center;gap:.55rem;margin-top:.55rem;position:relative;width:max-content}.candidate-detail-owner .candidate-owner-select{left:auto;right:0;min-width:140px}.candidate-detail-owner>.owner-label{margin-right:145px}
.login-v2{min-height:100vh;margin:0;background:#f5f7fb;color:#172033}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(480px,1.08fr) minmax(420px,.92fr)}
.login-story{position:relative;overflow:hidden;display:flex;align-items:center;padding:clamp(3rem,7vw,8rem);color:#fff;background:radial-gradient(circle at 15% 20%,#1e55ad 0,#153b7d 35%,#0b214d 100%)}.login-story:after{content:"";position:absolute;inset:0;opacity:.08;background-image:linear-gradient(rgba(255,255,255,.7) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.7) 1px,transparent 1px);background-size:48px 48px}.login-story-content{position:relative;z-index:2;max-width:680px}.login-brand-logo{width:124px;max-height:54px;object-fit:contain;object-position:left center;filter:brightness(0) invert(1);margin-bottom:4.5rem}.login-eyebrow{display:block;color:#7dd3fc;font-size:.72rem;font-weight:800;letter-spacing:.18em;margin-bottom:1rem}.login-story h1{font-size:clamp(2.6rem,4.2vw,4.7rem);line-height:1.04;letter-spacing:-.045em;font-weight:800;margin:0 0 1.5rem}.login-story p{max-width:570px;font-size:1.08rem;line-height:1.75;color:#cbd8ee}.login-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:3.5rem}.login-feature-grid>div{display:flex;gap:.75rem;padding:1rem;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.07);border-radius:14px;backdrop-filter:blur(8px)}.login-feature-grid i{color:#7dd3fc;font-size:1.2rem}.login-feature-grid span,.login-feature-grid small{display:block}.login-feature-grid b{font-size:.86rem}.login-feature-grid small{color:#aebed9;font-size:.72rem;margin-top:.2rem}.login-orb{position:absolute;border-radius:50%;opacity:.18;border:1px solid white}.login-orb-one{width:300px;height:300px;right:-110px;top:-70px}.login-orb-two{width:180px;height:180px;left:-75px;bottom:-40px}
.login-form-side{display:flex;align-items:center;justify-content:center;padding:2.5rem;background:linear-gradient(145deg,#fff,#f2f5fa)}.login-card-v2{width:min(440px,100%)}.login-mobile-brand{display:none}.login-heading span{font-size:.7rem;font-weight:800;color:#2563eb;letter-spacing:.16em}.login-heading h2{font-size:2rem;font-weight:800;letter-spacing:-.035em;margin:.65rem 0 .5rem}.login-heading p{color:#69758b;margin-bottom:2.2rem}.login-field{margin-bottom:1.15rem}.login-field>label{font-size:.8rem;font-weight:700;margin-bottom:.45rem}.login-field>div{height:52px;display:flex;align-items:center;border:1px solid #d7deea;background:#fff;border-radius:10px;transition:.2s}.login-field>div:focus-within{border-color:#2563eb;box-shadow:0 0 0 4px rgba(37,99,235,.09)}.login-field i{margin-left:1rem;color:#8490a5}.login-field input{flex:1;height:100%;border:0;outline:0;padding:0 .8rem;background:transparent}.login-field button{border:0;background:transparent;padding:.6rem 1rem}.login-field button i{margin:0}.login-remember{display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:#58647a}.login-forgot{border:0;background:none;color:#2563eb;font-size:.78rem;font-weight:700}.login-message{min-height:22px;font-size:.78rem}.login-submit{height:52px;width:100%;display:flex;align-items:center;justify-content:center;gap:.8rem;border:0;border-radius:10px;background:#1d4ed8;color:#fff;font-weight:800;box-shadow:0 10px 25px rgba(29,78,216,.2);transition:.2s}.login-submit:hover{background:#173ea9;transform:translateY(-1px)}.login-reset{margin-top:1.2rem;padding:1rem;border:1px solid #dce3ef;border-radius:12px;background:#fff}.login-reset input{width:100%;padding:.55rem .7rem;border:1px solid #dce3ef;border-radius:7px;margin:.25rem 0}.login-reset button{width:100%;border:0;background:#eaf0ff;color:#1d4ed8;padding:.55rem;border-radius:7px;font-weight:700;margin-top:.4rem}.login-security{text-align:center;color:#8a95a7;font-size:.72rem;margin-top:2rem}
@media(max-width:900px){.login-shell{display:block}.login-story{display:none}.login-form-side{min-height:100vh;padding:1.5rem}.login-mobile-brand{display:block;margin-bottom:2rem}.login-mobile-brand img{width:110px;max-height:44px;object-fit:contain}.login-heading h2{font-size:1.7rem}}
@media(min-width:901px) and (max-height:820px){.login-story{padding:2.5rem 7vw}.login-brand-logo{margin-bottom:2rem}.login-feature-grid{margin-top:2rem}.login-story h1{font-size:clamp(2.5rem,3.6vw,3.8rem)}.login-heading p{margin-bottom:1.5rem}.login-security{margin-top:1.2rem}}
.dion-user-menu{display:flex;align-items:center;margin-left:.65rem;padding-left:.65rem;border-left:1px solid #e5e9f1}.dion-user-trigger{display:flex!important;align-items:center;gap:.55rem;border:0;background:transparent}.dion-user-avatar{width:31px;height:31px;display:grid;place-items:center;border-radius:9px;color:#fff;background:var(--user-color);font-size:.75rem;font-weight:800}.dion-user-copy{display:flex;flex-direction:column;text-align:left;line-height:1.15}.dion-user-copy b{font-size:.72rem;max-width:105px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dion-user-copy small{font-size:.58rem;color:#8190a6;letter-spacing:.08em}.dion-user-trigger>.bi-chevron-down{font-size:.6rem;margin:0;color:#93a0b2}
@media(max-width:991px){.dion-user-menu{margin:.5rem 0 0;padding:.7rem 0 0;border-left:0;border-top:1px solid #e5e9f1}.dion-user-trigger{width:100%}}
.candidate-dropzone{min-height:145px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;border:1.5px dashed #9eb1ce;border-radius:12px;background:#f7faff;color:#42536c;cursor:pointer;transition:.2s}.candidate-dropzone:hover{border-color:#2563eb;background:#f1f6ff}.candidate-dropzone input{display:none}.candidate-dropzone>i{font-size:1.8rem;color:#2563eb}.candidate-dropzone small{color:#8490a5}.candidate-dropzone span{color:#2563eb;font-size:.8rem;font-weight:700}
.inhouse-badge{display:inline-flex;padding:.08rem .3rem;border-radius:4px;background:#fff0d8;color:#9a5100;border:1px solid #ffd79b;font-size:.58rem;font-weight:900;letter-spacing:.05em}
.login-story h1{color:#fff}
.jobs-page{max-width:none;width:100%}.jobs-toolbar{display:grid;grid-template-columns:minmax(260px,520px) 210px 42px;gap:.6rem;margin-bottom:.8rem}.jobs-table-card{background:#fff;border:1px solid #e4e9f1;border-radius:10px;overflow:hidden;box-shadow:0 3px 12px rgba(15,23,42,.04)}.jobs-table{table-layout:fixed;font-size:.78rem}.jobs-table thead th{background:#f7f9fc;color:#64748b;text-transform:uppercase;font-size:.65rem;letter-spacing:.06em;padding:.65rem .5rem}.jobs-table th:nth-child(1){width:34px}.jobs-table th:nth-child(2){width:20%}.jobs-table th:nth-child(3){width:17%}.jobs-table th:nth-child(4){width:16%}.jobs-table th:nth-child(5){width:11%}.jobs-table th:nth-child(6){width:22%}.jobs-table th:nth-child(7){width:110px}.jobs-table th:nth-child(8){width:42px}.job-main-row>td{padding:.65rem .5rem;vertical-align:middle;border-color:#edf0f5}.job-main-row.is-urgent{box-shadow:inset 3px 0 #dc2626}.job-expand{border:0;background:transparent;color:#64748b}.job-title-cell{display:flex;flex-direction:column}.job-title-cell strong{font-size:.86rem}.job-title-cell>span{color:#64748b;margin-top:.15rem}.job-title-cell em{font-style:normal;font-size:.56rem;font-weight:900;width:max-content;margin-top:.3rem;padding:.1rem .3rem;border-radius:3px}.priority-urgent{color:#b91c1c;background:#fee2e2}.priority-high{color:#9a5b00;background:#fff2cf}.job-tags{display:flex;gap:.25rem;flex-wrap:wrap;margin-bottom:.25rem}.job-tags span{padding:.12rem .35rem;background:#eef4ff;color:#2459a9;border-radius:4px;font-weight:700;font-size:.66rem}.job-time{display:flex;flex-direction:column;gap:.3rem;color:#475569}.job-time i{width:17px;color:#8190a6}.job-metrics{display:flex;gap:.3rem}.job-metric{min-width:40px;display:flex;flex-direction:column;align-items:center;padding:.25rem .3rem;border-radius:6px;background:#f1f5f9;color:#526174}.job-metric i{display:none}.job-metric b{font-size:.82rem}.job-metric small{font-size:.56rem}.metric-interview{background:#fff7db;color:#8a5a00}.metric-pass{background:#dcfce7;color:#15803d}.metric-fail{background:#fee2e2;color:#b91c1c}.job-status-select{width:100%;border:1px solid #dce3ed;border-radius:6px;padding:.3rem;font-size:.7rem;font-weight:700;background:#fff}.status-open{color:#15803d}.status-filled{color:#2563eb}.status-paused{color:#9a5b00}.job-detail-row>td{padding:0!important;background:#f8fafc}.job-inline-panel{padding:.8rem 1.2rem 1rem;border-top:1px solid #dce4f0;border-bottom:1px solid #dce4f0}.job-inline-head{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:.7rem}.job-inline-head>div:first-child{display:flex;flex-direction:column;max-width:60%}.job-inline-head small{color:#64748b}.job-add-candidate{display:flex;gap:.35rem;width:min(420px,40%)}.job-add-candidate>div{flex:1}.candidate-search-results{display:none;position:absolute;z-index:20;top:100%;left:0;right:0;max-height:260px;overflow:auto;background:#fff;border:1px solid #dce3ed;border-radius:7px;box-shadow:0 12px 25px rgba(15,23,42,.12)}.candidate-search-results.show{display:block}.candidate-search-results button{width:100%;border:0;border-bottom:1px solid #edf0f5;background:#fff;padding:.5rem;text-align:left;display:flex;justify-content:space-between}.candidate-search-results button:hover{background:#f3f7ff}.candidate-search-results span,.candidate-search-results small{display:block}.candidate-search-results em{font-style:normal;color:#64748b;font-size:.68rem}.job-candidates-table{font-size:.72rem}.job-candidates-table td{vertical-align:middle}.job-candidates-table td:first-child{min-width:175px}.job-candidates-table td:first-child strong,.job-candidates-table td:first-child small,.candidate-inline-metrics{display:block}.candidate-inline-metrics{font-size:.62rem;color:#64748b}.job-candidates-table select,.job-candidates-table input{height:30px;min-width:95px;border:1px solid #d9e0ea;border-radius:5px;padding:.25rem;font-size:.68rem;background:#fff}
@media(max-width:900px){.jobs-page{padding-left:.75rem!important;padding-right:.75rem!important}.jobs-toolbar{grid-template-columns:1fr 150px 40px}.jobs-table{min-width:1100px}.job-inline-head{align-items:flex-start;flex-direction:column}.job-inline-head>div:first-child,.job-add-candidate{max-width:none;width:100%}}
.operations-dashboard{margin-bottom:1rem}.inhouse-summary{min-width:150px;display:flex;flex-direction:column;gap:.55rem}.inhouse-summary>div{display:flex;align-items:center;justify-content:space-between;padding:.45rem .65rem;border-radius:7px;background:#f6f8fb}.inhouse-summary b{font-size:1rem}.inhouse-summary span{font-size:.68rem;color:#64748b;text-transform:uppercase}
.reports-page{max-width:1500px}.reports-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.report-card{background:#fff;border:1px solid #e3e8f0;border-radius:10px;padding:1rem;box-shadow:0 3px 10px rgba(15,23,42,.035)}.report-card header{display:flex;justify-content:space-between}.report-card header span:first-child{font-size:.6rem;color:#2563eb;font-weight:900;letter-spacing:.08em}.report-card h6{margin:.25rem 0;font-weight:800}.report-state{padding:.18rem .45rem;border-radius:5px;background:#f1f5f9;color:#64748b;font-size:.65rem;height:max-content}.report-state.is-submitted{background:#dcfce7;color:#15803d}.report-period{font-size:.72rem;color:#64748b;margin:.5rem 0}.report-period i{margin-right:.35rem}.report-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.5rem;padding:.7rem;background:#f6f8fb;border-radius:8px}.report-metrics>div{display:flex;flex-direction:column}.report-metrics span{font-size:.65rem;color:#64748b}.report-metrics b{font-size:1.1rem}.report-metrics.compact b{font-size:.95rem}.report-card p{font-size:.72rem;margin:.7rem 0 0;color:#475569}
.candidate-dropzone.is-dragging{border-color:#2563eb;background:#eaf2ff;box-shadow:0 0 0 4px rgba(37,99,235,.1);transform:translateY(-1px)}

/* Jobs workspace v2 */
.jobs-page{max-width:1500px;margin:auto}.jobs-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem}.jobs-page-head h4{margin:.1rem 0;font-size:1.25rem;font-weight:800}.jobs-page-head p{margin:0;color:#64748b;font-size:.78rem}.page-kicker{color:#2563eb;font-size:.6rem;font-weight:900;letter-spacing:.12em}.jobs-head-actions{display:flex;gap:.5rem}.jobs-head-actions .btn{font-size:.78rem}.jobs-grid{display:grid;gap:.65rem}.job-card{overflow:hidden;border:1px solid #e2e8f0;border-radius:10px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.035)}.job-card.is-urgent{border-left:4px solid #dc2626}.job-card>header{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:.45rem;padding:.75rem .8rem;border-bottom:1px solid #f1f5f9}.job-card-title{min-width:0}.job-card-title>div{display:flex;align-items:center;gap:.5rem}.job-card-title strong{overflow:hidden;font-size:.9rem;text-overflow:ellipsis;white-space:nowrap}.job-card-title>span{display:block;margin-top:.12rem;color:#64748b;font-size:.68rem}.job-card-title em{font-style:normal;font-size:.54rem;font-weight:900;padding:.1rem .3rem;border-radius:3px}.job-card-body{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(190px,1fr) 150px 210px 115px;align-items:center;gap:.8rem;padding:.65rem .85rem}.job-card-need>span,.job-card-rate span,.job-card-rate small,.job-card-owner small{display:block;color:#64748b;font-size:.64rem}.job-card-rate b{font-size:.72rem}.job-card-owner{min-width:0}.job-metrics{justify-content:flex-start}.job-status-view{display:inline-flex;padding:.3rem .55rem;border:1px solid #dce3ed;border-radius:6px;background:#fff;font-size:.68rem;font-weight:750}.job-inline-panel{padding:.8rem;border-top:1px solid #e2e8f0;background:#f8fafc}.job-detail-summary{display:grid;grid-template-columns:1fr 1fr minmax(300px,.8fr);align-items:end;gap:.8rem;margin-bottom:.7rem}.job-detail-summary>div:not(.job-add-candidate){display:grid}.job-detail-summary b{font-size:.67rem}.job-detail-summary span{color:#64748b;font-size:.7rem}.job-add-candidate{width:100%}.job-pipeline-list{display:grid;gap:.45rem}.job-pipeline-card{display:grid;grid-template-columns:minmax(190px,1.4fr) 120px 100px 165px 100px minmax(130px,1fr) 30px;align-items:end;gap:.45rem;padding:.55rem;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.pipeline-person{display:grid;min-width:0}.pipeline-person strong{font-size:.75rem}.pipeline-person span,.pipeline-person small{overflow:hidden;color:#64748b;font-size:.62rem;text-overflow:ellipsis;white-space:nowrap}.job-pipeline-card label{display:grid;gap:.15rem}.job-pipeline-card label small{color:#64748b;font-size:.56rem;text-transform:uppercase}.job-pipeline-card select,.job-pipeline-card input{width:100%;min-width:0;height:30px;border:1px solid #d9e0ea;border-radius:5px;padding:.2rem .35rem;font-size:.66rem;background:#fff}.job-form-sections{display:grid;gap:.8rem}.job-form-section{padding:1rem;border:1px solid #e2e8f0;border-radius:9px;background:#fbfdff}.job-form-section h6{margin:0 0 .8rem;font-size:.75rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.job-form-section select[multiple]{min-height:92px}.form-hint{margin-top:.2rem;color:#94a3b8;font-size:.6rem}.metadata-toolbar{display:grid;grid-template-columns:180px 1fr auto;gap:.6rem;margin-bottom:1rem}.metadata-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.metadata-groups section{padding:.8rem;border:1px solid #e2e8f0;border-radius:9px}.metadata-groups h6{display:flex;justify-content:space-between;font-size:.75rem}.metadata-groups h6 span{color:#94a3b8}.metadata-groups section>div{display:flex;flex-wrap:wrap;gap:.35rem}.metadata-chip{display:inline-flex;align-items:center;gap:.15rem;padding:.25rem .4rem;border-radius:5px;background:#eff6ff;color:#1d4ed8;font-size:.68rem;font-weight:650}.metadata-chip button{display:grid;place-items:center;width:17px;height:17px;padding:0;border:0;border-radius:50%;background:transparent;color:#64748b}.jobs-empty{display:grid;place-items:center;gap:.25rem;padding:3rem;border:1px dashed #cbd5e1;border-radius:10px;color:#94a3b8}.jobs-empty i{font-size:1.5rem}.jobs-empty.compact{padding:1rem}.candidate-search-results{min-width:320px}
@media(max-width:1100px){.job-card-body{grid-template-columns:1.5fr 1fr 130px 190px}.job-card-body>div:last-child{grid-column:4}.job-pipeline-card{grid-template-columns:1.4fr 110px 90px 150px}.job-pipeline-card label:nth-of-type(4),.job-pipeline-card label:nth-of-type(5){grid-column:auto}.job-detail-summary{grid-template-columns:1fr 1fr}.job-add-candidate{grid-column:1/-1}}
@media(max-width:767.98px){.jobs-page{padding:.7rem!important}.jobs-page-head{align-items:center;margin-bottom:.65rem}.jobs-page-head h4{font-size:1rem}.jobs-page-head p,.page-kicker{display:none}.jobs-head-actions .btn{padding:.38rem .55rem;font-size:.68rem}.jobs-toolbar{grid-template-columns:1fr 105px 36px!important}.jobs-toolbar .form-control,.jobs-toolbar .form-select{font-size:.7rem}.job-card>header{padding:.55rem}.job-card-title strong{font-size:.78rem}.job-card-body{grid-template-columns:1fr 1fr;gap:.55rem;padding:.55rem}.job-card-body>div:last-child{grid-column:auto}.job-card-rate{display:none}.job-metrics{justify-content:flex-end}.job-card-owner small{display:none}.job-detail-summary{grid-template-columns:1fr}.job-pipeline-card{grid-template-columns:1fr 1fr;padding:.55rem}.pipeline-person{grid-column:1/-1}.job-pipeline-card>button{justify-self:end}.metadata-toolbar{grid-template-columns:1fr}.metadata-groups{grid-template-columns:1fr}.job-form-section{padding:.7rem}.modal-xl{--bs-modal-width:calc(100vw - 12px)}}

/* Candidate density and information hierarchy v2 */
.candidates-page #candidatesTable{table-layout:fixed!important}.candidates-page #candidatesTable th:nth-child(1){width:2.5%!important}.candidates-page #candidatesTable th:nth-child(2){width:22%!important}.candidates-page #candidatesTable th:nth-child(3){width:11%!important}.candidates-page #candidatesTable th:nth-child(4){width:13%!important}.candidates-page #candidatesTable th:nth-child(5){width:8%!important}.candidates-page #candidatesTable th:nth-child(6){width:10%!important}.candidates-page #candidatesTable th:nth-child(7){width:25%!important}.candidates-page #candidatesTable th:nth-child(8){width:7%!important}.candidates-page #candidatesTable th:nth-child(9){width:2.5%!important}.candidate-identity-cell{gap:2px;line-height:1.25}.candidate-identity-cell .name-cell{font-size:13px!important;font-weight:800}.candidate-row-meta{font-size:9px}.candidate-row-contact{grid-template-columns:1fr;gap:1px;margin-top:3px;font-size:10px}.candidate-metric-row{display:flex;flex-wrap:wrap;gap:3px}.candidate-metric-row .metric-chip{display:inline-flex;align-items:center;gap:3px;min-width:0;padding:3px 5px;border-radius:5px}.candidate-metric-row .metric-chip>i{grid-row:auto;font-size:9px}.candidate-metric-row .metric-value{font-size:10px}.candidate-metric-row .metric-chip small{font-size:6px}.candidates-page .role-cell{height:auto;max-height:52px}.candidates-page .campaign-cell{display:-webkit-box;overflow:hidden;font-size:9px;line-height:1.25;-webkit-line-clamp:3;-webkit-box-orient:vertical}.candidates-page .evaluation-note-cell{display:grid;gap:4px;max-height:78px!important;overflow:auto;font-size:10px!important;line-height:1.35}.evaluation-note-cell .note-line{display:block;padding-left:3px;border-left:2px solid #cbd5e1}.evaluation-note-cell .note-hr{border-color:#2563eb;color:#1e3a8a}.evaluation-note-cell .note-topcv{border-color:#f59e0b;color:#475569}.evaluation-note-cell .note-ai{border-color:#7c3aed}.evaluation-note-cell .note-line b{display:inline-block;margin-right:4px;font-size:7px;text-transform:uppercase}.candidate-owner-col .owner-label{max-width:100%;overflow:hidden;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:767.98px){.candidates-page{padding:.65rem!important}.candidates-page .page-heading{margin-bottom:.45rem!important}.candidates-page .page-heading h4{font-size:.95rem}.candidates-page .page-heading>div{gap:.3rem!important}.candidates-page .page-heading .btn{min-height:30px!important;padding:.28rem .45rem!important;font-size:.65rem!important;border-radius:6px}.candidate-mobile-card{padding:.65rem!important}.candidate-mobile-name{font-size:.82rem!important}.candidate-metrics{margin:.45rem 0!important}.candidate-mobile-campaign{padding:.35rem .45rem!important;font-size:.68rem}.candidate-mobile-note{padding:.42rem!important;font-size:.68rem}.candidate-contact{min-height:34px!important;padding:.35rem .45rem!important}}

/* Automation health dashboard */
.automation-health{margin-bottom:1rem;overflow:hidden;border:1px solid #dbe5f1;border-radius:10px;background:#fff;box-shadow:0 3px 12px rgba(15,23,42,.04)}.automation-health-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem .85rem;border-bottom:1px solid #edf2f7;background:linear-gradient(90deg,#f0fdf4,#fff)}.automation-health-head>div{display:flex;align-items:center;gap:.45rem;font-size:.72rem}.automation-health-head span{color:#64748b}.automation-live-dot{width:8px;height:8px;border-radius:50%;background:#22c55e!important;box-shadow:0 0 0 4px rgba(34,197,94,.12)}.automation-health.is-disabled .automation-live-dot{background:#94a3b8!important;box-shadow:none}.automation-last-update b{color:#0f172a}.automation-health-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;background:#e8edf4}.automation-health-grid article{display:flex;align-items:center;gap:.55rem;min-width:0;padding:.7rem;background:#fff}.automation-health-grid article>i{display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:7px;background:#eff6ff;color:#2563eb}.automation-health-grid article>div{display:grid;min-width:0}.automation-health-grid small{overflow:hidden;color:#64748b;font-size:.58rem;text-overflow:ellipsis;white-space:nowrap}.automation-health-grid b{font-size:.85rem}.automation-health-grid em{color:#16a34a;font-size:.6rem;font-style:normal}.automation-health-grid .is-success>i{background:#dcfce7;color:#16a34a}.automation-health-grid .is-danger>i{background:#fee2e2;color:#dc2626}.automation-runs summary{padding:.45rem .85rem;color:#64748b;font-size:.65rem;cursor:pointer}.automation-runs table{font-size:.65rem}.automation-status{padding:.15rem .3rem;border-radius:4px;background:#f1f5f9;font-size:.58rem;font-weight:800}.automation-status.status-completed,.automation-status.status-success{background:#dcfce7;color:#15803d}.automation-status.status-failed{background:#fee2e2;color:#b91c1c}.automation-status.status-running{background:#dbeafe;color:#1d4ed8}
@media(max-width:1100px){.automation-health-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:767.98px){.dashboard-wrap{padding:.7rem!important}.automation-health-head{align-items:flex-start;flex-direction:column;gap:.3rem}.automation-health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.automation-health-grid article{padding:.55rem}.automation-health-grid article>i{flex-basis:25px;height:25px;font-size:.75rem}.automation-last-update{font-size:.62rem!important}}
@media(min-width:1101px){.automation-health-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(min-width:992px) and (max-width:1400px){.navbar .container-fluid{padding-left:.8rem!important;padding-right:.8rem!important}.navbar-brand span{font-size:.78rem}.navbar-nav .nav-link{gap:4px;padding-left:.38rem!important;padding-right:.38rem!important;font-size:.68rem}.navbar-nav .nav-link i{font-size:.72rem}.dion-user-copy{display:none!important}.dion-user-trigger{padding-left:.45rem!important;padding-right:.45rem!important}}

/* Shared visual consistency: quiet surfaces, one primary accent, no colored side rails. */
.dashboard-last-sync{display:flex;align-items:center;gap:.35rem;padding:.42rem .65rem;border:1px solid #e2e8f0;border-radius:7px;background:#fff;color:#64748b;font-size:.72rem;box-shadow:0 1px 3px rgba(15,23,42,.035)}
.dashboard-last-sync b{color:#334155;font-weight:700}
.data-sync-widget{display:flex;align-items:stretch;height:42px;overflow:hidden;border:1px solid #dfe5ee;border-radius:7px;background:#fff;box-shadow:0 2px 7px rgba(15,23,42,.055);font-size:.72rem}.data-sync-label{display:flex;align-items:center;gap:.35rem;min-width:212px;padding:0 .7rem;color:#64748b;white-space:nowrap}.data-sync-label b{color:#334155;font-weight:750}.data-sync-widget>[data-sync-now]{display:flex;align-items:center;justify-content:center;gap:.3rem;min-width:92px;padding:0 .65rem;border:0;border-left:1px solid #dfe5ee;background:#f8fafc;color:#2563eb;font-size:.68rem;font-weight:800;transition:.15s}.data-sync-widget>[data-sync-now]:hover:not(:disabled){background:#eaf2ff}.data-sync-widget>[data-sync-now]:disabled{color:#64748b;cursor:wait}.data-sync-widget[data-status=failed]{border-color:#fecaca}.data-sync-widget[data-status=failed] .data-sync-label i{color:#dc2626}.dashboard-filter-control{height:42px;min-width:180px}.candidate-head-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.dion-user-menu{border-left:0!important;padding-left:0!important}
.job-card.is-urgent,.job-main-row.is-urgent{border-left-color:#e2e8f0!important;box-shadow:0 2px 8px rgba(15,23,42,.035)!important}
.page-kicker{color:#64748b!important}
.priority-urgent,.priority-high,.job-tags span,.metadata-chip{border:1px solid #e2e8f0!important;background:#f8fafc!important;color:#475569!important}
.job-metric,.metric-interview,.metric-pass,.metric-fail{border:1px solid #e2e8f0!important;background:#f8fafc!important;color:#475569!important}
.job-status-view,.status-open,.status-filled,.status-paused{color:#475569!important}
.automation-health-head{background:#f8fafc!important}
.automation-runs,.automation-runs .table-responsive{min-width:0;max-width:100%}
.automation-runs .table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media(max-width:991.98px){.nav-link,.nav-link:hover,.nav-link.active{border-left:0!important;box-shadow:none!important}.navbar-nav .nav-link.active{background:#f1f5f9!important}}
@media(max-width:767.98px){.automation-health{min-width:0;max-width:100%}.automation-runs table{min-width:620px}.dashboard-last-sync{max-width:100%}.data-sync-widget{height:38px}.data-sync-label{min-width:0;padding:0 .5rem}.data-sync-label span{display:none}.data-sync-widget>[data-sync-now]{min-width:78px}.candidate-head-actions{justify-content:flex-end}}

/* Candidates readability v3: spend space on names, campaigns, metrics and HR notes. */
.candidates-page #candidatesTable{table-layout:fixed!important}
.candidates-page #candidatesTable th:nth-child(1){width:2.5%!important}
.candidates-page #candidatesTable th:nth-child(2){width:19%!important}
.candidates-page #candidatesTable th:nth-child(3){width:14%!important}
.candidates-page #candidatesTable th:nth-child(4){width:13%!important}
.candidates-page #candidatesTable th:nth-child(5){width:15%!important}
.candidates-page #candidatesTable th:nth-child(6){width:10%!important}
.candidates-page #candidatesTable th:nth-child(7){width:16.5%!important}
.candidates-page #candidatesTable th:nth-child(8){width:6%!important}
.candidates-page #candidatesTable th:nth-child(9){width:4%!important}
.candidates-page #candidatesTable tbody td{padding:.62rem .48rem!important;vertical-align:top}
.candidate-identity-cell{gap:3px!important;line-height:1.35!important}
.candidate-identity-cell .name-cell{font-size:14px!important;line-height:1.3!important}
.candidate-row-meta{font-size:10px!important}
.candidate-row-contact{gap:4px!important;font-size:10px!important;line-height:1.35!important}
.candidate-row-contact a:first-child{display:inline-flex;align-items:center;width:max-content;padding:2px 5px;border-radius:5px;background:#f1f5f9;color:#0f172a!important;font-size:13px!important;font-weight:800!important}
.candidate-metric-row{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px!important}
.candidate-metric-row .metric-chip{display:grid!important;grid-template-columns:auto 1fr!important;grid-template-rows:auto auto!important;align-items:center!important;padding:6px 7px!important;border:1px solid #e2e8f0!important;border-radius:7px!important;background:#f8fafc!important}
.candidate-metric-row .metric-chip>i{grid-row:1/3!important;font-size:12px!important}
.candidate-metric-row .metric-value{font-size:13px!important;line-height:1.1!important}
.candidate-metric-row .metric-chip small{font-size:8px!important;line-height:1.1!important}
.candidates-page .role-cell{max-height:76px!important;font-size:10px!important;line-height:1.35!important}
.candidate-role-hierarchy{display:grid;gap:5px}.candidate-role-hierarchy>strong{display:inline-flex;width:max-content;max-width:100%;padding:4px 7px;border:1px solid #bfdbfe;border-radius:6px;background:#eff6ff;color:#1e40af;font-size:11px;line-height:1.2}.candidate-role-hierarchy>div{display:flex;flex-wrap:wrap;gap:3px}.candidate-secondary-role{display:inline-flex;padding:2px 5px;border:1px solid #e2e8f0;border-radius:5px;background:#f8fafc;color:#64748b;font-size:8px;font-weight:600}
.candidates-page .campaign-cell{display:block!important;overflow:visible!important;font-size:11px!important;font-weight:650!important;line-height:1.4!important;white-space:normal!important;word-break:break-word!important;-webkit-line-clamp:unset!important}
.candidate-owner-col .owner-label{font-size:10px!important}
.candidate-note-wrap{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:5px;min-height:42px}
.candidate-hr-note{display:-webkit-box;overflow:hidden;color:#334155;font-size:11px;font-weight:600;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.candidate-hr-note>i{margin-right:5px;color:#64748b}
.candidate-no-hr-note{color:#94a3b8;font-size:10px;font-style:italic}
.candidate-note-hint{color:#94a3b8;font-size:11px;cursor:help}
.candidate-note-hover{position:absolute;z-index:80;right:0;top:calc(100% + 6px);display:none;width:min(420px,70vw);padding:.75rem;border:1px solid #cbd5e1;border-radius:8px;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.16);color:#334155}
.candidate-note-wrap:hover .candidate-note-hover,.candidate-note-wrap:focus-within .candidate-note-hover{display:grid;gap:.65rem}
.candidate-note-hover section+section{padding-top:.6rem;border-top:1px solid #e2e8f0}
.candidate-note-hover b{display:block;margin-bottom:.2rem;color:#475569;font-size:10px;text-transform:uppercase;letter-spacing:.04em}
.candidate-note-hover p{max-height:150px;margin:0;overflow:auto;font-size:12px;font-weight:500;line-height:1.5;white-space:pre-wrap}
.received-date-cell b{font-size:10px!important}.received-date-cell small{font-size:8px!important}
.candidates-page #candidatesTable td:last-child{text-align:center!important}.candidates-page #candidatesTable td:last-child .btn{display:inline-grid!important;place-items:center!important;width:30px;height:30px;padding:0!important}
.candidate-filter-panel{border-color:#e2e8f0!important}.candidate-filter-mode{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.65rem;padding-bottom:.6rem;border-bottom:1px solid #edf1f5}.candidate-filter-mode>div{display:grid}.candidate-filter-mode b{font-size:.78rem}.candidate-filter-mode span{color:#64748b;font-size:.65rem}.candidate-advanced-filter{display:none!important}.candidate-filter-panel.show-advanced .candidate-advanced-filter{display:block!important}.candidate-filter-panel.show-advanced .row.candidate-advanced-filter{display:flex!important}.candidate-mobile-primary-role{display:inline-flex;width:max-content;max-width:100%;margin-bottom:5px;padding:4px 7px;border:1px solid #bfdbfe;border-radius:6px;background:#eff6ff;color:#1e40af;font-size:11px}

/* Candidates v4: searchable multi-selects and information-dense readable table. */
.search-multiselect{position:relative}.search-multiselect-toggle{display:flex;width:100%;height:40px;align-items:center;justify-content:space-between;padding:.45rem .75rem;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#1e293b;text-align:left}.search-multiselect-toggle span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-multiselect-menu{position:absolute;z-index:120;top:calc(100% + 4px);left:0;display:none;width:max(100%,320px);padding:8px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.18)}.search-multiselect.is-open .search-multiselect-menu{display:block}.search-multiselect-options{display:grid;max-height:310px;margin-top:7px;overflow:auto}.search-multiselect-options label{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:5px;font-size:12px;cursor:pointer}.search-multiselect-options label:hover{background:#eff6ff}.search-multiselect-options label:has(input:checked){background:#dbeafe;color:#1d4ed8;font-weight:700}
.candidates-page #candidatesTable th:nth-child(1){width:2.5%!important}.candidates-page #candidatesTable th:nth-child(2){width:15%!important}.candidates-page #candidatesTable th:nth-child(3){width:14%!important}.candidates-page #candidatesTable th:nth-child(4){width:12%!important}.candidates-page #candidatesTable th:nth-child(5){width:7%!important}.candidates-page #candidatesTable th:nth-child(6){width:14%!important}.candidates-page #candidatesTable th:nth-child(7){width:9%!important}.candidates-page #candidatesTable th:nth-child(8){width:18%!important}.candidates-page #candidatesTable th:nth-child(9){width:5.5%!important}.candidates-page #candidatesTable th:nth-child(10){width:3%!important}
.candidate-contact-cell{display:grid;gap:6px}.candidate-contact-cell a{display:flex;min-width:0;align-items:center;gap:6px;text-decoration:none}.candidate-contact-cell .candidate-phone{width:max-content;padding:4px 7px;border-radius:6px;background:#e8f1ff;color:#123a70;font-size:14px;font-weight:850;letter-spacing:.02em}.candidate-contact-cell .candidate-email{color:#475569;font-size:11px}.candidate-contact-cell .candidate-email span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.candidates-page .candidate-role-hierarchy>strong{padding:4px 6px;font-size:11px}.candidates-page .candidate-secondary-role{font-size:8px}.candidates-page .candidate-hr-note{font-size:12px!important;line-height:1.55!important}.candidates-page .candidate-no-hr-note{font-size:11px!important}.candidates-page .candidate-note-wrap{min-height:48px}.candidates-page #candidatesTable td:last-child{text-align:center!important}.candidates-page #candidatesTable td:last-child .btn{width:32px;height:32px}

/* TopCV automation control center. */
.topcv-control-card{border:1px solid #dbe3ed!important;border-radius:10px!important;box-shadow:0 3px 12px rgba(15,23,42,.04)!important}
.topcv-control-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:.85rem;border-bottom:1px solid #e8edf3}
.topcv-control-head h4{margin:0;font-size:1.05rem;font-weight:800}.topcv-control-head p{margin:.2rem 0 0;color:#64748b;font-size:.75rem}
.topcv-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;margin:1rem 0}
.topcv-status-item{display:grid;gap:.18rem;min-width:0;padding:.7rem .8rem;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc}
.topcv-status-item small{color:#64748b;font-size:.62rem;text-transform:uppercase;letter-spacing:.04em}.topcv-status-item b{overflow:hidden;color:#334155;font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.topcv-status-item span{color:#64748b;font-size:.65rem}
.topcv-status-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.38rem .62rem;border:1px solid #cbd5e1;border-radius:999px;background:#f8fafc;color:#475569;font-size:.7rem;font-weight:750}.topcv-status-badge::before{width:7px;height:7px;border-radius:50%;background:#94a3b8;content:''}.topcv-status-badge.is-on::before{background:#22c55e}.topcv-status-badge.is-running::before{background:#2563eb;box-shadow:0 0 0 4px rgba(37,99,235,.12)}.topcv-status-badge.is-error::before{background:#dc2626}
.topcv-config-panel{padding:1rem;border:1px solid #e2e8f0;border-radius:9px;background:#fff}.topcv-config-panel h6{font-size:.78rem;font-weight:800}.topcv-sync-history{margin-top:1rem;border:1px solid #e2e8f0;border-radius:9px;overflow:hidden}.topcv-sync-history header{display:flex;justify-content:space-between;padding:.65rem .8rem;background:#f8fafc}.topcv-sync-history h6{margin:0;font-size:.75rem;font-weight:800}.topcv-sync-history table{margin:0;font-size:.7rem}
@media(max-width:991.98px){.topcv-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767.98px){.topcv-control-head{flex-direction:column}.topcv-status-grid{grid-template-columns:1fr}.topcv-sync-history table{min-width:720px}.candidate-note-hover{position:fixed;right:12px;bottom:12px;top:auto;width:calc(100vw - 24px)}}
@media(max-width:767.98px){.candidates-page .page-heading{height:auto!important;min-height:0!important}.candidates-page .page-heading h4{margin:0!important;font-size:.95rem!important;line-height:1.2!important;white-space:nowrap}.candidates-page .page-heading>div{align-items:center!important}.candidates-page .page-heading .btn{align-self:center!important;width:auto!important;height:auto!important;min-height:30px!important;padding:.28rem .45rem!important;line-height:1.2!important}}
@media(max-width:767.98px){.jobs-page-head{height:auto!important;min-height:0!important}.jobs-page-head h4{margin:0!important;font-size:1rem!important;line-height:1.2!important;white-space:nowrap}.jobs-head-actions{align-items:center}.jobs-head-actions .btn{width:auto!important;height:auto!important;min-height:30px!important;padding:.3rem .45rem!important;line-height:1.2!important}}

/* Jobs v3: share the Candidates visual system and expose master data as tables. */
.jobs-page{max-width:none!important;background:transparent}.jobs-page-head{align-items:center;margin-bottom:1rem;padding:0}.jobs-page-head h4{font-size:1.35rem}.jobs-toolbar{padding:1rem;border:1px solid #e2e8f0;border-top:2px solid #7aa2ff;border-radius:8px;background:#fff;box-shadow:0 3px 12px rgba(15,23,42,.04)}.jobs-grid{padding-top:.15rem;border-top:2px solid #7aa2ff}.job-card{border-radius:8px;box-shadow:0 3px 12px rgba(15,23,42,.04)}.job-card>header{padding:.85rem 1rem;background:#fff}.job-card-title strong{font-size:1rem;color:#2459db}.job-card-title>span{font-size:.76rem}.job-card-body{padding:.8rem 1rem}.job-card-rate b,.job-card-need>span{font-size:.78rem}.job-tags span{padding:.2rem .45rem;font-size:.72rem}.job-metric{min-width:46px;padding:.35rem}.job-metric b{font-size:.95rem}.job-metric small{font-size:.62rem}.job-inline-panel{padding:1rem;background:#f8fafc}.job-detail-summary b{font-size:.75rem}.job-detail-summary span{font-size:.76rem}.job-add-candidate{min-width:390px}.job-add-candidate .form-control{height:38px;font-size:.8rem}.candidate-search-results{min-width:440px;max-height:360px}.candidate-search-results button{align-items:center;padding:.65rem .75rem}.candidate-search-results button b{font-size:.8rem;color:#1d4ed8}.candidate-search-results button b small{display:inline;color:#94a3b8;font-weight:500}.candidate-search-results button span>small{margin-top:.2rem;color:#475569;font-size:.7rem}.candidate-search-results em{max-width:130px;padding:.2rem .4rem;border-radius:5px;background:#eff6ff;color:#1e40af;font-size:.68rem;font-weight:700}.job-pipeline-card{padding:.7rem}.pipeline-person strong{font-size:.82rem}.pipeline-person span,.pipeline-person small{font-size:.68rem}

/* Compact professional Jobs UI */
.jobs-grid{gap:.42rem}.job-card-row{display:grid;grid-template-columns:38px minmax(210px,1.35fr) minmax(185px,.9fr) minmax(170px,.9fr) 245px 112px 74px;align-items:center;gap:.65rem;padding:.5rem .7rem}.job-card-title>div{display:flex;align-items:center;gap:.4rem}.job-card-title strong{display:block;overflow:hidden;color:#1e40af;font-size:.86rem;text-overflow:ellipsis;white-space:nowrap}.job-card-title small{margin-left:.45rem;color:#64748b;font-size:.62rem}.client-label{display:inline-flex!important;align-items:center;gap:.25rem;margin-top:.15rem;padding:.12rem .4rem;border-radius:999px;background:#eef2ff;color:#4338ca!important;font-size:.65rem!important;font-weight:750}.job-expand{display:grid;place-items:center;width:32px;height:32px;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;color:#2563eb;box-shadow:0 2px 5px rgba(37,99,235,.12);transition:.15s}.job-expand:hover,.job-expand.active{background:#2563eb;color:#fff;transform:translateY(-1px)}.job-card-need{min-width:0}.job-tags{display:flex;overflow:hidden;gap:.25rem;white-space:nowrap}.job-tags span:first-child{background:#dbeafe;color:#1d4ed8;font-weight:800}.job-tags span:not(:first-child){background:#f1f5f9;color:#475569}.job-card-need>span,.job-card-rate span{display:block;margin-top:.18rem;color:#64748b;font-size:.62rem}.job-card-rate b{display:block;overflow:hidden;font-size:.69rem;text-overflow:ellipsis;white-space:nowrap}.job-metrics{display:flex;gap:.28rem}.job-metric{display:grid;grid-template-columns:10px auto;grid-template-rows:auto auto;align-items:center;min-width:52px;padding:.27rem .35rem;border:1px solid #e2e8f0;border-radius:7px;background:#f8fafc;color:#64748b}.job-metric i{grid-row:1/3;font-size:.48rem}.job-metric b{font-size:.78rem;line-height:1}.job-metric small{font-size:.52rem;line-height:1.1}.metric-apply{border-color:#bfdbfe;background:#eff6ff;color:#2563eb}.metric-interview{border-color:#fde68a;background:#fffbeb;color:#d97706}.metric-pass{border-color:#bbf7d0;background:#f0fdf4;color:#16a34a}.metric-fail{border-color:#fecaca;background:#fef2f2;color:#dc2626}.job-card-end{display:grid;gap:.16rem}.job-owner-compact{overflow:hidden;color:#64748b;font-size:.58rem;text-align:center;text-overflow:ellipsis;white-space:nowrap}.job-card-actions{display:flex;gap:.25rem}.job-card-actions .btn{width:32px;height:32px;padding:0}.job-status-select{height:28px;padding:.15rem 1.6rem .15rem .4rem;font-size:.62rem}.job-editor-dialog{width:min(1500px,calc(100vw - 32px));max-width:none;margin:1rem auto}.job-editor-dialog .modal-content{overflow:hidden;border:0;border-radius:14px;box-shadow:0 24px 80px rgba(15,23,42,.22)}.job-editor-head{padding:1rem 1.35rem;border-bottom:1px solid #dbeafe;background:linear-gradient(135deg,#f8fbff,#eef4ff)}.job-editor-dialog .modal-body{max-height:calc(100vh - 155px);padding:1rem 1.25rem;background:#f8fafc}.job-form-layout{display:grid;grid-template-columns:1.2fr .9fr;gap:.75rem}.job-form-primary{grid-column:1/-1}.job-form-section{padding:.85rem 1rem;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.035)}.job-form-section h6{display:flex;align-items:center;gap:.45rem;margin-bottom:.65rem;color:#334155}.job-form-section h6 i{color:#2563eb}.job-form-section .form-label{margin-bottom:.25rem;color:#475569;font-size:.68rem;font-weight:750}.job-form-section .form-control,.job-form-section .form-select{min-height:38px;font-size:.78rem}.choices{margin-bottom:0}.choices__inner{min-height:38px!important;padding:4px 8px!important;border:1px solid #dee2e6!important;border-radius:6px!important;background:#fff!important;font-size:.78rem!important}.choices.is-focused .choices__inner,.choices.is-open .choices__inner{border-color:#86b7fe!important;box-shadow:0 0 0 .2rem rgba(13,110,253,.14)}.choices__list--multiple .choices__item{border:0!important;border-radius:5px!important;background:#2563eb!important;font-size:.68rem!important}.choices__list--dropdown{z-index:1100!important;border-radius:7px!important}.money-field{position:relative}.money-field input{padding-right:28px;font-variant-numeric:tabular-nums;font-weight:750}.money-field span{position:absolute;top:50%;right:10px;color:#64748b;font-size:.72rem;transform:translateY(-50%)}
@media(max-width:1199.98px){.job-card-row{grid-template-columns:38px minmax(190px,1.2fr) minmax(160px,.8fr) 220px 105px 70px}.job-card-rate{display:none}.job-form-layout{grid-template-columns:1fr}.job-form-primary{grid-column:auto}}
@media(max-width:767.98px){.job-card-row{grid-template-columns:32px 1fr auto;padding:.5rem}.job-card-need,.job-card-rate,.job-card-end{display:none}.job-metrics{grid-column:2/3}.job-card-actions{grid-column:3;grid-row:1/3}.job-editor-dialog{width:calc(100vw - 10px);margin:5px auto}.job-editor-dialog .modal-body{max-height:calc(100vh - 130px);padding:.6rem}.job-form-section{padding:.7rem}}

@media(min-width:768px){.data-sync-label{width:180px;min-width:180px}}

/* Sync status compact action + dashboard workspaces */
.data-sync-label{width:255px!important;min-width:255px!important;font-size:.82rem}.data-sync-label b{font-size:.86rem}.data-sync-widget>[data-sync-now]{width:42px;min-width:42px;padding:0;font-size:0}.data-sync-widget>[data-sync-now] i{font-size:1rem}.data-sync-widget>[data-sync-now] .spinner-border{width:1rem;height:1rem}.dashboard-tabs{display:flex;align-items:center;gap:.35rem;margin:0 0 1rem;padding:.3rem;width:max-content;max-width:100%;border:1px solid #dfe5ee;border-radius:10px;background:#fff;box-shadow:0 3px 10px rgba(15,23,42,.045)}.dashboard-tabs button{display:flex;align-items:center;gap:.45rem;height:36px;padding:0 .9rem;border:0;border-radius:7px;background:transparent;color:#64748b;font-size:.76rem;font-weight:750;transition:.15s}.dashboard-tabs button:hover{background:#f1f5f9;color:#1d4ed8}.dashboard-tabs button.active{background:#2563eb;color:#fff;box-shadow:0 4px 10px rgba(37,99,235,.2)}.dashboard-tab-panel{display:none!important}.dashboard-tab-panel.active{display:flex!important}.dashboard-tab-panel[data-dashboard-group=tech].active{display:block!important}.operations-dashboard [data-dashboard-item]{display:none}.operations-dashboard [data-dashboard-item].active{display:block}
@media(max-width:767.98px){.data-sync-label{width:auto!important;min-width:145px!important;font-size:.72rem}.data-sync-label b{font-size:.75rem}.dashboard-tabs{width:100%;overflow-x:auto}.dashboard-tabs button{flex:1;min-width:max-content;padding:0 .65rem}}
.metadata-tables{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.metadata-table-card{overflow:hidden!important;padding:0!important}.metadata-table-card>header{display:flex;align-items:center;justify-content:space-between;padding:.7rem .8rem;border-bottom:1px solid #e2e8f0;background:#f8fafc}.metadata-table-card h6{margin:0!important;font-size:.82rem!important}.metadata-table-card header small{display:block;margin-top:.15rem;color:#64748b;font-size:.63rem}.metadata-table-card header>span{padding:.2rem .45rem;border-radius:12px;background:#e2e8f0;color:#475569;font-size:.65rem;font-weight:700}.metadata-table-card table{font-size:.72rem}.metadata-table-card th{padding:.45rem .6rem;background:#fff;color:#64748b;font-size:.61rem;text-transform:uppercase}.metadata-table-card td{padding:.45rem .6rem}.metadata-source{display:inline-flex;padding:.18rem .4rem;border-radius:5px;background:#f1f5f9;color:#475569;font-size:.62rem;font-weight:700}.metadata-source.source-topcv{background:#fff7ed;color:#c2410c}.metadata-source.source-candidates{background:#eff6ff;color:#1d4ed8}
@media(max-width:900px){.metadata-tables{grid-template-columns:1fr}.candidate-search-results{min-width:100%}.job-add-candidate{min-width:0}}

.jobs-view-tabs{display:flex;gap:.35rem;margin-bottom:.8rem;padding:.3rem;border:1px solid #e2e8f0;border-radius:8px;background:#fff;width:max-content}.jobs-view-tabs button{display:flex;align-items:center;gap:.4rem;padding:.5rem .8rem;border:0;border-radius:6px;background:transparent;color:#64748b;font-size:.78rem;font-weight:700}.jobs-view-tabs button.active{background:#eaf1ff;color:#2459db}.jobs-view-tabs button span{padding:.05rem .35rem;border-radius:10px;background:#dbeafe;font-size:.65rem}.jobs-view{display:none}.jobs-view.active{display:block}.pipeline-actions{display:flex;gap:.15rem;align-items:center}.placement-summary,.revenue-comparison{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin-bottom:.8rem}.revenue-comparison{grid-template-columns:repeat(3,minmax(0,1fr))}.placement-summary article,.revenue-comparison article{display:grid;padding:.85rem 1rem;border:1px solid #e2e8f0;border-radius:8px;background:#fff;box-shadow:0 3px 12px rgba(15,23,42,.04)}.placement-summary small,.revenue-comparison small{color:#64748b;font-size:.7rem}.placement-summary b,.revenue-comparison b{font-size:1.15rem}.revenue-comparison span{color:#64748b;font-size:.68rem}.placement-summary .is-warning{border-left:4px solid #f59e0b}.placement-summary .is-danger{border-left:4px solid #ef4444}.placements-table thead th{padding:.65rem;background:#f8fafc;color:#64748b;font-size:.65rem;text-transform:uppercase}.placements-table td{padding:.7rem;font-size:.76rem}.placements-table td strong,.placements-table td small{display:block}.placements-table td small{color:#64748b}.placements-table td:first-child span{display:inline-flex;margin-top:.25rem;padding:.15rem .35rem;border-radius:4px;background:#eff6ff;color:#1d4ed8;font-size:.64rem;font-weight:700}.placements-table tr.is-ending{background:#fffbeb}.placements-table tr.is-expired{background:#fef2f2}.contract-countdown{display:inline-flex;padding:.25rem .45rem;border-radius:5px;background:#f1f5f9;font-weight:750}.is-ending .contract-countdown{background:#fef3c7;color:#92400e}.is-expired .contract-countdown{background:#fee2e2;color:#b91c1c}#acceptancesView table td small{display:block;color:#64748b}
@media(max-width:767.98px){.jobs-view-tabs{width:100%;overflow:auto}.jobs-view-tabs button{white-space:nowrap}.placement-summary,.revenue-comparison{grid-template-columns:1fr 1fr}.placements-table{min-width:1000px}}
