/* ============================================================
   PCAMS Document Checkpoint -- checkpoint.css
   ============================================================ */
:root {
    --cp-bg: #f8fafc; --cp-card: #fff; --cp-border: #e2e8f0;
    --cp-primary: #1e40af; --cp-green: #16a34a; --cp-red: #dc2626;
    --cp-amber: #d97706; --cp-text: #1e293b; --cp-muted: #64748b;
    --cp-radius: 10px; --cp-shadow: 0 1px 4px rgba(0,0,0,.08);
}
* { box-sizing: border-box; }
.pcamsq-cp-wrap { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: var(--cp-bg); min-height: 100vh; padding: 0 0 60px; color: var(--cp-text); }
.pcamsq-cp-header { background: #1e293b; color: #fff; padding: 18px 28px 16px; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.pcamsq-cp-title-row { display: flex; align-items: center; gap: 10px; }
.pcamsq-cp-title { margin: 0; font-size: 20px; font-weight: 700; color: #fff; }
.pcamsq-cp-live-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: #4ade80; animation: cp-pulse 2s infinite; }
@keyframes cp-pulse { 0%,100%{opacity:1}50%{opacity:.4} }
.pcamsq-cp-stats { display: flex; gap: 20px; }
.pcamsq-cp-stat { text-align: center; min-width: 60px; }
.pcamsq-cp-stat-num { display: block; font-size: 22px; font-weight: 700; line-height: 1; }
.pcamsq-cp-stat-lbl { font-size: 10px; text-transform: uppercase; letter-spacing: .5px; color: #94a3b8; }
.pcamsq-cp-stat-green .pcamsq-cp-stat-num { color: #4ade80; }
.pcamsq-cp-stat-red   .pcamsq-cp-stat-num { color: #f87171; }
.pcamsq-cp-toolbar { display: flex; align-items: center; gap: 10px; padding: 14px 28px; background: #fff; border-bottom: 1px solid var(--cp-border); flex-wrap: wrap; }
.pcamsq-cp-search { flex: 1; min-width: 200px; max-width: 360px; padding: 8px 14px; border: 1px solid var(--cp-border); border-radius: 6px; font-size: 13px; outline: none; }
.pcamsq-cp-search:focus { border-color: var(--cp-primary); box-shadow: 0 0 0 3px rgba(30,64,175,.1); }
.pcamsq-cp-btn-scan-all, .pcamsq-cp-btn-refresh { padding: 8px 16px; border-radius: 6px; border: none; font-size: 13px; font-weight: 600; cursor: pointer; transition: opacity .15s; }
.pcamsq-cp-btn-scan-all { background: #7c3aed; color: #fff; }
.pcamsq-cp-btn-scan-all:disabled { opacity:.5; cursor:default; }
.pcamsq-cp-btn-refresh { background: #f1f5f9; color: var(--cp-text); border: 1px solid var(--cp-border); }
.pcamsq-cp-btn-refresh:hover { background: #e2e8f0; }
.pcamsq-cp-ai-info { display: flex; align-items: center; justify-content: space-between; padding: 8px 28px; background: #eff6ff; border-bottom: 1px solid #bfdbfe; font-size: 13px; color: var(--cp-primary); }
.pcamsq-cp-ai-info-close { background: none; border: none; cursor: pointer; color: var(--cp-primary); font-size: 14px; padding: 0 4px; }
.pcamsq-cp-table-wrap { padding: 20px 28px; }
.pcamsq-cp-loading { text-align: center; padding: 60px; color: var(--cp-muted); font-size: 14px; }
.pcamsq-cp-empty { text-align: center; padding: 60px; color: var(--cp-muted); font-size: 15px; background: #fff; border-radius: var(--cp-radius); border: 1px dashed var(--cp-border); }
.pcamsq-cp-table { width: 100%; border-collapse: collapse; background: #fff; border-radius: var(--cp-radius); overflow: hidden; box-shadow: var(--cp-shadow); }
.pcamsq-cp-table thead tr { background: #1e293b; color: #fff; }
.pcamsq-cp-table th { padding: 10px 14px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .5px; text-align: left; white-space: nowrap; }
.pcamsq-cp-table td { padding: 10px 14px; font-size: 13px; border-bottom: 1px solid #f1f5f9; vertical-align: middle; }
.pcamsq-cp-table tbody tr:hover { background: #f8fafc; }
.pcamsq-cp-table tbody tr:last-child td { border-bottom: none; }
.pcamsq-cp-thumb { width: 52px; height: 52px; object-fit: cover; border-radius: 5px; cursor: pointer; border: 2px solid var(--cp-border); display: block; }
.pcamsq-cp-thumb:hover { border-color: var(--cp-primary); }
.pcamsq-cp-thumb-pdf { width: 52px; height: 52px; border-radius: 5px; border: 2px solid #fca5a5; display: flex; align-items: center; justify-content: center; font-size: 22px; cursor: pointer; background: #fef2f2; }
.pcamsq-cp-thumb-missing { width: 52px; height: 52px; border-radius: 5px; border: 2px dashed #cbd5e1; display: flex; align-items: center; justify-content: center; font-size: 18px; color: #cbd5e1; background: #f8fafc; }
.pcamsq-cp-ai-cell { min-width: 110px; }
.pcamsq-cp-ai-badge { display: inline-flex; align-items: center; gap: 4px; padding: 3px 8px; border-radius: 99px; font-size: 11px; font-weight: 600; white-space: nowrap; margin-top: 4px; }
.pcamsq-cp-ai-badge.pass { background:#dcfce7; color:#15803d; }
.pcamsq-cp-ai-badge.warn { background:#fef9c3; color:#854d0e; }
.pcamsq-cp-ai-badge.fail { background:#fee2e2; color:#b91c1c; }
.pcamsq-cp-ai-badge.scanning { background:#eff6ff; color:#1d4ed8; }
.pcamsq-cp-ai-details { font-size: 11px; color: var(--cp-muted); margin-top: 3px; max-width: 140px; line-height: 1.3; }
.pcamsq-cp-scan-btn { padding: 3px 9px; font-size: 11px; border-radius: 4px; border: 1px solid #7c3aed; background: #fff; color: #7c3aed; cursor: pointer; font-weight: 600; white-space: nowrap; }
.pcamsq-cp-scan-btn:hover { background: #7c3aed; color: #fff; }
.pcamsq-cp-scan-btn:disabled { opacity:.5; cursor:default; }
.pcamsq-cp-actions { display: flex; flex-direction: column; gap: 5px; align-items: flex-end; }
.pcamsq-cp-approve-btn { padding: 6px 14px; border-radius: 6px; border: none; font-size: 12px; font-weight: 600; cursor: pointer; background: var(--cp-green); color: #fff; white-space: nowrap; }
.pcamsq-cp-approve-btn:disabled { opacity:.5; cursor:default; }
.pcamsq-cp-reject-btn { padding: 6px 14px; border-radius: 6px; font-size: 12px; font-weight: 600; cursor: pointer; background: #fff; color: var(--cp-red); border: 1px solid var(--cp-red); white-space: nowrap; }
.pcamsq-cp-reject-btn:disabled { opacity:.5; cursor:default; }
tr.pcamsq-cp-row-pass { background: #f0fdf4 !important; }
tr.pcamsq-cp-row-warn { background: #fefce8 !important; }
tr.pcamsq-cp-row-fail { background: #fff1f2 !important; }
.pcamsq-cp-svc { display: inline-block; padding: 2px 8px; border-radius: 99px; font-size: 11px; font-weight: 600; }
.pcamsq-cp-svc-express { background:#fef3c7; color:#92400e; }
.pcamsq-cp-svc-nextday { background:#dbeafe; color:#1e40af; }
.pcamsq-cp-svc-regular { background:#f1f5f9; color:#475569; }
.pcamsq-cp-modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.55); z-index: 99999; display: flex; align-items: center; justify-content: center; padding: 20px; }
.pcamsq-cp-modal { background: #fff; border-radius: var(--cp-radius); padding: 28px; max-width: 520px; width: 100%; max-height: 90vh; overflow-y: auto; box-shadow: 0 20px 60px rgba(0,0,0,.25); }
.pcamsq-cp-modal-title { margin: 0 0 6px; font-size: 17px; font-weight: 700; color: var(--cp-red); }
.pcamsq-cp-modal-subtitle { margin: 0 0 16px; font-size: 13px; color: var(--cp-muted); }
.pcamsq-cp-reject-reasons { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; }
.pcamsq-cp-reject-reasons label { display: flex; align-items: center; gap: 8px; font-size: 13px; cursor: pointer; padding: 6px 10px; border-radius: 5px; border: 1px solid var(--cp-border); }
.pcamsq-cp-reject-reasons label:hover { background: #fef2f2; border-color: #fca5a5; }
.pcamsq-cp-reject-reasons input[type=checkbox] { width:15px; height:15px; }
.pcamsq-cp-reject-note { width: 100%; min-height: 72px; padding: 8px 12px; border: 1px solid var(--cp-border); border-radius: 6px; font-size: 13px; font-family: inherit; resize: vertical; margin-bottom: 16px; }
.pcamsq-cp-modal-actions { display: flex; gap: 10px; justify-content: flex-end; }
.pcamsq-cp-modal-cancel { padding: 8px 18px; border-radius: 6px; border: 1px solid #cbd5e1; background: #f1f5f9; color: #475569; font-size: 13px; cursor: pointer; font-weight: 600; opacity: 1; visibility: visible; }
.pcamsq-cp-modal-confirm { padding: 8px 20px; border-radius: 6px; border: none; background: var(--cp-red); color: #fff; font-size: 13px; font-weight: 700; cursor: pointer; }
.pcamsq-cp-modal-confirm:disabled { opacity:.5; cursor:default; }
.pcamsq-cp-preview-modal-inner { max-width: 700px; }
.pcamsq-cp-modal-preview-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; font-weight: 700; font-size: 15px; }
.pcamsq-cp-preview-close { background: #f1f5f9; border: 1px solid var(--cp-border); border-radius: 5px; padding: 5px 12px; cursor: pointer; font-size: 12px; font-weight: 600; }
.pcamsq-cp-preview-content img { max-width: 100%; border-radius: 6px; }
.pcamsq-cp-preview-content iframe { width: 100%; height: 500px; border: none; border-radius: 6px; }
.pcamsq-cp-toast { position: fixed; top: 20px; right: 20px; padding: 12px 20px; border-radius: 8px; color: #fff; font-size: 13px; font-weight: 600; z-index: 999999; box-shadow: 0 4px 16px rgba(0,0,0,.2); }
@media (max-width: 900px) {
    .pcamsq-cp-table-wrap { padding: 12px; }
    .pcamsq-cp-toolbar { padding: 10px 12px; }
    .pcamsq-cp-header { padding: 14px 16px; }
    .pcamsq-cp-ai-col { display: none; }
}

/* ---- Search panel ---- */
.pcamsq-cp-search-panel { display:flex; align-items:center; justify-content:center; min-height:70vh; padding:40px 20px; }
.pcamsq-cp-search-card { background:#fff; border-radius:16px; padding:48px 40px; max-width:480px; width:100%; box-shadow:0 4px 24px rgba(0,0,0,.10); text-align:center; }
.pcamsq-cp-search-icon { font-size:48px; margin-bottom:12px; }
.pcamsq-cp-search-title { margin:0 0 8px; font-size:22px; font-weight:700; color:var(--cp-text); }
.pcamsq-cp-search-hint { margin:0 0 24px; font-size:14px; color:var(--cp-muted); }
.pcamsq-cp-search-row { display:flex; gap:8px; }
.pcamsq-cp-lookup-input { flex:1; padding:12px 16px; border:2px solid var(--cp-border); border-radius:8px; font-size:15px; outline:none; text-align:center; }
.pcamsq-cp-lookup-input:focus { border-color:var(--cp-primary); box-shadow:0 0 0 3px rgba(30,64,175,.12); }
.pcamsq-cp-lookup-btn { padding:12px 22px; background:var(--cp-primary); color:#fff; border:none; border-radius:8px; font-size:14px; font-weight:700; cursor:pointer; white-space:nowrap; }
.pcamsq-cp-lookup-btn:hover { background:#1d3fad; }
.pcamsq-cp-lookup-btn:disabled { opacity:.5; cursor:default; }
.pcamsq-cp-lookup-error { margin-top:14px; padding:10px 14px; background:#fef2f2; border:1px solid #fca5a5; border-radius:6px; font-size:13px; color:var(--cp-red); text-align:left; }
/* ---- Result toolbar ---- */
.pcamsq-cp-result-toolbar { display:flex; align-items:center; gap:14px; padding:12px 28px; background:#fff; border-bottom:1px solid var(--cp-border); flex-wrap:wrap; }
.pcamsq-cp-btn-back { padding:7px 16px; border-radius:6px; border:none; background:var(--cp-primary); color:#fff; font-size:13px; font-weight:700; cursor:pointer; }
.pcamsq-cp-btn-back:hover { background:#1d3fad; }
/* ---- Next prompt ---- */
.pcamsq-cp-next-prompt { margin-left:auto; font-size:13px; font-weight:600; color:var(--cp-muted); }
.pcamsq-cp-next-btn { padding:6px 16px; background:var(--cp-primary); color:#fff; border:none; border-radius:6px; font-size:13px; font-weight:700; cursor:pointer; margin-left:8px; }
.pcamsq-cp-next-btn:hover { background:#1d3fad; }

/* ---- Error-docs bypass button ---- */
.pcamsq-cp-error-approve-btn { padding:6px 14px; border-radius:6px; border:none; font-size:12px; font-weight:600; cursor:pointer; background:var(--cp-amber); color:#fff; white-space:nowrap; }
.pcamsq-cp-error-approve-btn:hover { background:#b45309; }
.pcamsq-cp-error-approve-btn:disabled { opacity:.5; cursor:default; }

/* ---- Arrival mode heading ---- */
.pcamsq-arrival-mode .pcamsq-cp-title::before { content:"" ; }

/* ---- Check-in button (arrival row action) ---- */
.pcamsq-cp-checkin-btn { padding:9px 16px; border-radius:7px; border:none; font-size:12px; font-weight:800; cursor:pointer; background:var(--cp-primary); color:#fff; white-space:nowrap; }
.pcamsq-cp-checkin-btn:hover { background:#1d3fad; }
.pcamsq-cp-checkin-btn:disabled { opacity:.5; cursor:default; }

/* 3-STEP ARRIVAL FLOW MODAL */
.pcamsq-flow-modal-inner { max-width:440px; width:100%; padding:32px; }
.pcamsq-flow-dots { display:flex; align-items:center; justify-content:center; margin-bottom:28px; }
.pcamsq-flow-dot { display:flex; flex-direction:column; align-items:center; gap:4px; }
.pcamsq-flow-dot-num { width:32px; height:32px; border-radius:50%; background:#e2e8f0; color:#94a3b8; font-size:13px; font-weight:800; display:flex; align-items:center; justify-content:center; transition:all .25s; }
.pcamsq-flow-dot-label { font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.4px; color:#94a3b8; }
.pcamsq-flow-dot.active .pcamsq-flow-dot-num { background:var(--cp-primary); color:#fff; box-shadow:0 0 0 4px rgba(30,64,175,.15); }
.pcamsq-flow-dot.active .pcamsq-flow-dot-label { color:var(--cp-primary); }
.pcamsq-flow-dot.done .pcamsq-flow-dot-num { background:var(--cp-green); color:#fff; }
.pcamsq-flow-dot.done .pcamsq-flow-dot-label { color:var(--cp-green); }
.pcamsq-flow-connector { flex:1; height:2px; background:#e2e8f0; margin:0 6px; margin-bottom:16px; }
.pcamsq-flow-step-icon { font-size:36px; text-align:center; margin-bottom:10px; }
.pcamsq-flow-step-title { margin:0 0 4px; font-size:18px; font-weight:800; color:var(--cp-text); text-align:center; }
.pcamsq-flow-step-name { margin:0 0 12px; font-size:15px; font-weight:600; color:var(--cp-primary); text-align:center; }
.pcamsq-flow-step-hint { margin:0 0 20px; font-size:13px; color:var(--cp-muted); text-align:center; line-height:1.5; }
.pcamsq-flow-arrival-fields { background:#f8fafc; border:1px solid var(--cp-border); border-radius:10px; padding:16px 18px; margin-bottom:22px; }
.pcamsq-flow-field-row { display:flex; align-items:center; gap:12px; padding:8px 0; border-bottom:1px solid var(--cp-border); }
.pcamsq-flow-field-row:last-child { border-bottom:none; }
.pcamsq-flow-field-label { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; color:var(--cp-muted); min-width:48px; }
.pcamsq-flow-arrived-tick { font-size:14px; font-weight:700; color:var(--cp-green); }
.pcamsq-flow-field-value { font-size:15px; font-weight:700; color:var(--cp-text); }
.pcamsq-flow-time-input { font-size:20px; font-weight:700; padding:6px 10px; border:2px solid var(--cp-border); border-radius:7px; outline:none; color:var(--cp-text); flex:1; }
.pcamsq-flow-time-input:focus { border-color:var(--cp-primary); box-shadow:0 0 0 3px rgba(30,64,175,.1); }
.pcamsq-flow-live-badge { display:flex; align-items:center; gap:5px; font-size:11px; color:var(--cp-muted); font-style:italic; white-space:nowrap; }
.pcamsq-arrival-live-dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:#4ade80; animation:cp-pulse 2s infinite; }
.pcamsq-flow-route-row { background:#eff6ff; border-radius:7px; margin-top:4px; padding:10px 12px !important; }
.pcamsq-flow-route-select { flex:1; font-size:15px; font-weight:700; padding:7px 10px; border:2px solid #bfdbfe; border-radius:7px; outline:none; color:var(--cp-text); background:#fff; cursor:pointer; }
.pcamsq-flow-route-select:focus { border-color:var(--cp-primary); box-shadow:0 0 0 3px rgba(30,64,175,.12); }
.pcamsq-flow-actions { display:flex; gap:10px; justify-content:flex-end; }
.pcamsq-flow-action-btn { padding:11px 22px; border-radius:7px; border:none; background:var(--cp-primary); color:#fff; font-size:14px; font-weight:800; cursor:pointer; }
.pcamsq-flow-action-btn:hover { background:#1d3fad; }
.pcamsq-flow-action-btn:disabled { opacity:.5; cursor:default; }
.pcamsq-flow-action-btn-green { background:var(--cp-green); }
.pcamsq-flow-action-btn-green:hover { background:#15803d; }

/* ── Welcome / Queue Position screen ────────────────────────────────────── */
#pcamsq-welcome-screen { text-align:center; padding:36px 28px 28px; animation:pcamsq-fadein .3s ease; }
@keyframes pcamsq-fadein { from { opacity:0; transform:scale(.96); } to { opacity:1; transform:scale(1); } }
.pcamsq-welcome-emoji  { font-size:64px; line-height:1; margin-bottom:14px; }
.pcamsq-welcome-title  { font-size:26px; font-weight:800; color:#070f50; margin:0 0 10px; }
.pcamsq-welcome-pos    { font-size:20px; color:#1e40af; margin:0 0 16px; }
.pcamsq-welcome-pos strong { font-size:28px; font-weight:900; }
.pcamsq-welcome-time   { font-size:14px; color:#6b7280; margin:0 0 28px; line-height:1.6; }
#pcamsq-welcome-ok     { background:#070f50; color:#fff; border:none; border-radius:10px; padding:13px 52px; font-size:16px; font-weight:700; cursor:pointer; transition:background .15s; }
#pcamsq-welcome-ok:hover { background:#1d3fad; }

.pcamsq-cp-edit-btn { padding:6px 14px; border-radius:6px; border:1px solid #2563eb; background:#eff6ff; color:#1d4ed8; font-size:12px; font-weight:700; cursor:pointer; white-space:nowrap; }
.pcamsq-cp-edit-btn:hover { background:#dbeafe; }
