:root{--bg:#f4f7fb;--panel:#fff;--text:#172033;--muted:#6b7485;--line:#e3e8f0;--blue:#2563eb;--green:#0a8f55;--red:#c33c3c;--amber:#b7791f}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}header{height:64px;background:#111827;color:white;display:flex;align-items:center;padding:0 24px;gap:28px;position:sticky;top:0}header b{letter-spacing:.08em}header span,h1 span{color:#60a5fa}nav{display:flex;gap:17px;flex:1}header a{color:#dbe4f3;text-decoration:none;font-size:14px}header aside{font-size:13px}main{max-width:1450px;margin:auto;padding:24px}h1{margin:0 0 5px}.muted{color:var(--muted)}section{background:white;border:1px solid var(--line);border-radius:13px;padding:18px;margin:18px 0;box-shadow:0 4px 16px #0f172a0a}.cards{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;background:none;border:0;padding:0;box-shadow:none}.card{background:white;border:1px solid var(--line);border-radius:13px;padding:18px}.card span{display:block;color:var(--muted);font-size:12px}.card b{display:block;font-size:30px;margin-top:8px}.card.verified{border-left:4px solid var(--green)}.card.not_verified{border-left:4px solid var(--red)}.card.pending{border-left:4px solid var(--amber)}.grid{display:grid;grid-template-columns:1fr 1.5fr;gap:18px}.grid section{margin:0}form{display:grid;grid-template-columns:1fr 1fr;gap:13px}label{font-size:13px;color:var(--muted)}input,select{width:100%;padding:10px;border:1px solid #ccd3df;border-radius:8px;margin-top:5px;background:white}button{background:var(--blue);color:white;border:0;border-radius:8px;padding:11px 15px;font-weight:700;cursor:pointer;align-self:end}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:11px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}th{background:#f8fafc;color:var(--muted)}td a{color:var(--blue);text-decoration:none;font-weight:600}.badge{display:inline-block;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:700;background:#e5e7eb}.badge.verified{background:#ddf7ea;color:#05643b}.badge.not_verified{background:#fde6e6;color:#a12424}.badge.pending{background:#fff2ce;color:#7d590e}.badge.processing{background:#e5edff;color:#234f9d}.thumb{width:44px;height:44px;object-fit:cover;border-radius:8px}.large{width:100%;height:390px;object-fit:contain;background:#eef1f5;border-radius:10px}.filters{grid-template-columns:2fr 1fr auto}.note{background:#f1f5f9;padding:12px;border-radius:8px;color:var(--muted)}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#0f172a,#1e3a8a)}.loginbox{display:grid;width:390px;background:white;padding:32px;border-radius:18px;box-shadow:0 25px 80px #0006}.loginbox h1{font-size:28px}.loginbox p,.loginbox small{color:var(--muted)}@media(max-width:900px){.cards{grid-template-columns:1fr 1fr}.grid{grid-template-columns:1fr}nav{display:none}form{grid-template-columns:1fr}}

.sourcegrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.sourcephotos{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.sourcephotos .large{height:260px}@media(max-width:800px){.sourcegrid,.sourcephotos{grid-template-columns:1fr}}

.title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.back-link{display:inline-block;margin-bottom:7px;color:var(--blue);text-decoration:none;font-size:13px}.btn,.print-button{display:inline-block;background:var(--blue);color:white!important;text-decoration:none;border:0;border-radius:8px;padding:11px 15px;font-weight:700;cursor:pointer}.btn.secondary{background:#eef2ff;color:#1d4ed8!important;border:1px solid #c7d2fe}.badge.completed{background:#ddf7ea;color:#05643b}.badge.in_progress{background:#e5edff;color:#234f9d}.badge.not_started{background:#fff2ce;color:#7d590e}.badge.no_candidates{background:#eceff4;color:#566172}.table-scroll{overflow-x:auto}.candidate-filters{grid-template-columns:2fr 1fr 1fr 1fr 1fr auto}.operational-filters{grid-template-columns:2fr 1fr 1fr auto}.filter-section{position:sticky;top:74px;z-index:3}.pagination{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:16px;color:var(--muted);font-size:13px}.pagination .disabled{pointer-events:none;opacity:.45}.audit-table{min-width:1180px}.audit-table td{vertical-align:top}.candidate-details{min-width:210px}.candidate-details>a{font-size:14px}.candidate-details small,.audit-table td>small{display:block;margin-top:8px;line-height:1.55;color:var(--muted)}.audit-photo{width:88px;height:102px;object-fit:cover;border-radius:7px;border:1px solid var(--line);background:#eef1f5}.captured-photo{width:105px;height:122px}.source-audit-grid{display:flex;gap:10px;flex-wrap:wrap;min-width:210px}.source-audit{width:100px}.source-label{font-size:10px;font-weight:700;color:var(--muted);margin-bottom:4px}.mini-status{display:block;margin-top:4px;font-size:9px;font-weight:700;line-height:1.25}.mini-status.matched{color:#05643b}.mini-status.not-matched{color:#a12424}.mini-status.error{color:#9a3412}.mini-status.neutral{color:#6b7280}.no-photo{display:inline-block;padding:10px;background:#f1f5f9;border-radius:7px;color:var(--muted);font-size:11px}.print-header{display:none}@media(max-width:1000px){.candidate-filters,.operational-filters{grid-template-columns:1fr 1fr}.title-row{display:block}.title-row .btn,.title-row button{margin-top:12px}}@media print{@page{size:A4 landscape;margin:7mm}body{background:white;font-size:9px;color:#000}header,.filter-section,.print-button,.pagination,.back-link,.cards,main>section:not(.printable-list),.title-row{display:none!important}main{max-width:none;padding:0;margin:0}.printable-list{display:block!important;border:0;box-shadow:none;padding:0;margin:0}.print-header{display:block;margin-bottom:7px}.print-header h2{font-size:15px;margin:0}.print-header p{font-size:9px;margin:2px 0}.table-scroll{overflow:visible}.audit-table{min-width:0;width:100%;table-layout:fixed;font-size:8px}.audit-table th,.audit-table td{padding:3px;border:1px solid #bbb;break-inside:avoid}.audit-table th:nth-child(1){width:18%}.audit-table th:nth-child(2){width:12%}.audit-table th:nth-child(3){width:36%}.audit-table th:nth-child(4){width:15%}.audit-table th:nth-child(5){width:19%}.audit-photo{width:42px;height:48px;border-radius:2px}.captured-photo{width:50px;height:58px}.source-audit{width:48px}.source-audit-grid{gap:3px;min-width:0}.source-label{font-size:7px}.mini-status{font-size:6.5px}.candidate-details>a{font-size:8px;color:#000}.candidate-details small,.audit-table td>small{font-size:7px;margin-top:2px;line-height:1.25;color:#222}.badge{font-size:7px;padding:2px 4px;color:#000!important;background:white!important;border:1px solid #777}}

.photo-link{display:inline-block;text-decoration:none}
.photo-link:hover .audit-photo{outline:3px solid #bfdbfe;transform:translateY(-1px)}
.audit-photo{transition:outline .15s ease,transform .15s ease}
.source-audit-grid{align-items:flex-start}
.source-audit{flex:0 0 100px}
.print-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.print-header-always{margin-bottom:14px}
.print-header-always h1{font-size:22px;margin:0}
.print-header-always h2{font-size:16px;margin:4px 0}
.print-header-always p{margin:3px 0;color:var(--muted)}
.print-all-list{margin-top:0}
@media print{
 .print-toolbar{display:none!important}
 .print-header-always{display:block!important;margin-bottom:5px}
 .print-header-always h1{font-size:14px;margin:0}
 .print-header-always h2{font-size:11px;margin:2px 0}
 .print-header-always p{font-size:7px;margin:1px 0;color:#000}
 .print-all-list{display:block!important}
 .source-audit-grid{display:flex!important;flex-wrap:wrap!important}
 .photo-link:hover .audit-photo{outline:none;transform:none}
}

/* V2.0 Supervisor Cockpit */
.progress-track{width:110px;height:8px;background:#e5e7eb;border-radius:99px;overflow:hidden;display:inline-block;margin-right:6px}
.progress-track span{display:block;height:100%;background:#2563eb}
.card.total{border-left-color:#2563eb}
.card.completed{border-left-color:#4f46e5}
.grid>section{min-width:0}
table small{display:block;color:var(--muted);margin-top:3px}
@media(max-width:1100px){.grid{grid-template-columns:1fr}}

/* V2.1 event control and print readiness */
.inline-form{display:inline;margin:0}
.success-button,.danger-button{border:0;border-radius:7px;padding:8px 12px;color:white;font-weight:700;cursor:pointer}
.success-button{background:#07884a}.danger-button{background:#c93636}
.badge.running{background:#dcfce7;color:#166534}.badge.stopped{background:#fee2e2;color:#991b1b}
#printButton:disabled{opacity:.5;cursor:wait}
@media print{#printStatus{display:none!important}}

/* V2.2 fixed three-source alignment */
.source-audit-grid{
 display:grid!important;
 grid-template-columns:repeat(3,minmax(92px,1fr));
 gap:12px!important;
 align-items:start!important;
 min-width:330px!important
}
.source-audit{
 width:auto!important;
 min-width:0!important;
 display:grid!important;
 grid-template-rows:18px 122px 32px!important;
 align-items:start!important
}
.source-audit .photo-link{
 display:flex!important;
 align-items:flex-start!important;
 justify-content:flex-start!important
}
.source-audit .audit-photo{
 width:96px!important;
 height:116px!important;
 object-fit:cover!important
}
.source-label{min-height:18px!important;margin:0 0 4px!important}
.source-result{min-height:32px!important;margin:4px 0 0!important}
.source-result .mini-status{
 margin:0!important;
 white-space:normal!important;
 overflow-wrap:anywhere!important;
 line-height:1.2!important
}
.audit-table th:nth-child(3),.audit-table td:nth-child(3){min-width:380px!important}
@media print{
 .source-audit-grid{
  display:grid!important;
  grid-template-columns:repeat(3,1fr)!important;
  gap:2mm!important;
  min-width:0!important
 }
 .source-audit{
  grid-template-rows:3mm 24mm 5mm!important;
  width:auto!important
 }
 .source-audit .audit-photo{
  width:18mm!important;
  height:23mm!important;
  object-fit:cover!important
 }
 .source-label{font-size:6.5px!important;min-height:3mm!important}
 .source-result{min-height:5mm!important;margin-top:1mm!important}
 .source-result .mini-status{font-size:6px!important;line-height:1.1!important}
 .audit-table th:nth-child(3),.audit-table td:nth-child(3){
  width:38%!important;
  min-width:0!important
 }
}
