/* ==========================================================================
   PCAMS Queue Manager — Design System v2
   Modern operational dashboard — refined dark-accent SaaS aesthetic
   ========================================================================== */

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

:root {
    --pcq-ink:        #0f172a;
    --pcq-ink-2:      #1e293b;
    --pcq-ink-3:      #475569;
    --pcq-ink-4:      #94a3b8;
    --pcq-border:     #e2e8f0;
    --pcq-border-2:   #f1f5f9;
    --pcq-surface:    #ffffff;
    --pcq-surface-2:  #f8fafc;
    --pcq-surface-3:  #f1f5f9;
    --pcq-accent:     #1e3a5f;
    --pcq-accent-2:   #2d5282;
    --pcq-accent-glow:rgba(30,58,95,.12);
    --pcq-green:      #059669;
    --pcq-green-bg:   #d1fae5;
    --pcq-green-text: #065f46;
    --pcq-amber:      #d97706;
    --pcq-amber-bg:   #fef3c7;
    --pcq-amber-text: #78350f;
    --pcq-red:        #dc2626;
    --pcq-red-bg:     #fee2e2;
    --pcq-red-text:   #991b1b;
    --pcq-blue:       #2563eb;
    --pcq-blue-bg:    #dbeafe;
    --pcq-blue-text:  #1d4ed8;
    --pcq-purple-bg:  #ede9fe;
    --pcq-purple-text:#5b21b6;
    --pcq-radius:     10px;
    --pcq-radius-sm:  6px;
    --pcq-shadow:     0 1px 3px rgba(15,23,42,.07), 0 4px 16px rgba(15,23,42,.05);
    --pcq-shadow-lg:  0 8px 32px rgba(15,23,42,.14), 0 2px 8px rgba(15,23,42,.08);
    --pcq-font:       'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --pcq-mono:       'DM Mono', 'JetBrains Mono', 'Fira Code', monospace;
    --pcq-transition: .18s cubic-bezier(.4,0,.2,1);
}

/* ── Base ─────────────────────────────────────────────────────────────────── */
.pcamsq-wrap {
    max-width: 1320px;
    font-family: var(--pcq-font);
    color: var(--pcq-ink-2);
    -webkit-font-smoothing: antialiased;
}
.pcamsq-wrap * { box-sizing: border-box; }

/* ── Page heading ─────────────────────────────────────────────────────────── */
.pcamsq-heading {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 22px;
    color: var(--pcq-ink);
    letter-spacing: -.3px;
}
.pcamsq-heading .dashicons { color: var(--pcq-accent); }

.pcamsq-date-badge {
    font-size: 12px;
    background: var(--pcq-surface-3);
    color: var(--pcq-ink-3);
    padding: 4px 12px;
    border-radius: 20px;
    font-weight: 600;
    letter-spacing: .2px;
    border: 1px solid var(--pcq-border);
}

.pcamsq-live-dot {
    width: 8px; height: 8px;
    background: var(--pcq-green);
    border-radius: 50%;
    display: inline-block;
    box-shadow: 0 0 0 3px rgba(5,150,105,.18);
    animation: pcamsq-pulse 2.4s ease-in-out infinite;
}
@keyframes pcamsq-pulse {
    0%,100% { box-shadow: 0 0 0 3px rgba(5,150,105,.18); }
    50%      { box-shadow: 0 0 0 7px rgba(5,150,105,.06); }
}

/* ── Stats bar ────────────────────────────────────────────────────────────── */
.pcamsq-stats-bar {
    display: flex;
    gap: 14px;
    margin-bottom: 22px;
    flex-wrap: wrap;
}
.pcamsq-stat {
    background: var(--pcq-surface);
    border: 1px solid var(--pcq-border);
    border-radius: var(--pcq-radius);
    padding: 18px 26px;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 130px;
    box-shadow: var(--pcq-shadow);
    position: relative;
    overflow: hidden;
    transition: transform var(--pcq-transition), box-shadow var(--pcq-transition);
}
.pcamsq-stat::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: var(--pcq-accent);
    border-radius: 2px 2px 0 0;
}
.pcamsq-stat-held::before  { background: var(--pcq-amber); }
.pcamsq-stat-done::before  { background: var(--pcq-green); }
.pcamsq-stat:hover { transform: translateY(-2px); box-shadow: var(--pcq-shadow-lg); }

.pcamsq-stat-num {
    font-size: 36px;
    font-weight: 800;
    color: var(--pcq-ink);
    line-height: 1;
    margin-bottom: 4px;
    letter-spacing: -1px;
}
.pcamsq-stat-label {
    font-size: 11px;
    color: var(--pcq-ink-4);
    text-transform: uppercase;
    letter-spacing: .8px;
    font-weight: 600;
}

/* ── Card ─────────────────────────────────────────────────────────────────── */
.pcamsq-card {
    background: var(--pcq-surface);
    border: 1px solid var(--pcq-border);
    border-radius: var(--pcq-radius);
    margin-bottom: 22px;
    overflow: hidden;
    box-shadow: var(--pcq-shadow);
}
.pcamsq-card-history { opacity: .9; }

.pcamsq-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 20px;
    border-bottom: 1px solid var(--pcq-border);
    background: var(--pcq-surface-2);
    gap: 12px;
    flex-wrap: wrap;
}
.pcamsq-card-header h2 {
    margin: 0;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .7px;
    color: var(--pcq-ink-3);
}

/* ── Table ────────────────────────────────────────────────────────────────── */
.pcamsq-table { border-collapse: collapse; width: 100%; }
.pcamsq-table thead { position: sticky; top: 0; z-index: 2; }
.pcamsq-table th {
    background: var(--pcq-ink);
    color: #e2e8f0;
    padding: 11px 14px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .6px;
    text-align: left;
    white-space: nowrap;
}
.pcamsq-table th:first-child { border-radius: 0; }
.pcamsq-table td {
    padding: 11px 14px;
    border-bottom: 1px solid var(--pcq-border-2);
    vertical-align: middle;
    font-size: 13px;
    color: var(--pcq-ink-2);
}
.pcamsq-table tr:last-child td { border-bottom: none; }
.pcamsq-table tbody tr { transition: background var(--pcq-transition); }
.pcamsq-table tbody tr:hover { background: #f8fafc; }
.pcamsq-row-held   { background: #fffdf0 !important; }
.pcamsq-row-urgent td:first-child { border-left: 3px solid var(--pcq-red); }
.pcamsq-table tfoot td, .pcamsq-table tfoot th {
    background: var(--pcq-surface-3);
    font-weight: 700;
    color: var(--pcq-ink);
    border-top: 2px solid var(--pcq-border);
}

/* ── Badges ───────────────────────────────────────────────────────────────── */
.pcamsq-badge {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    white-space: nowrap;
    gap: 4px;
}
.pcamsq-badge-waiting  { background: #1e40af; color: #ffffff; }
.pcamsq-badge-held     { background: var(--pcq-amber-bg);  color: var(--pcq-amber-text); }
.pcamsq-badge-closed   { background: var(--pcq-green-bg);  color: var(--pcq-green-text); }
.pcamsq-badge-rejected { background: var(--pcq-red-bg);    color: var(--pcq-red-text); }
.pcamsq-badge-done     { background: var(--pcq-green-bg);  color: var(--pcq-green-text); }

/* ── Location banner (used on admin + public interview/collection pages) ──── */
.pcamsq-location-banner {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    padding: 10px 16px;
    background: #1e3a5f;
    border: 1px solid #2d5282;
    border-radius: 8px;
    margin-bottom: 16px;
    font-size: 13px;
    font-weight: 600;
    color: #e0f2fe;
}
.pcamsq-location-banner-all {
    background: #14532d;
    border-color: #166534;
    color: #dcfce7;
}
.pcamsq-loc-pill {
    display: inline-flex;
    align-items: center;
    padding: 3px 12px;
    border-radius: 14px;
    background: #2563eb;
    color: #ffffff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .2px;
}
.pcamsq-location-banner-all .pcamsq-loc-pill {
    background: #16a34a;
    color: #ffffff;
}

/* ── Branch location badge in queue table ─────────────────────────────────── */
.pcamsq-loc-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 11px;
    font-weight: 700;
    background: #1e40af;
    color: #ffffff;
    white-space: nowrap;
}

/* ── Service type badges ───────────────────────────────────────────────────── */
.pcamsq-svc-badge {
    display: inline-block;
    padding: 2px 9px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
    letter-spacing: .02em;
}
.pcamsq-svc-badge--regular  { background: #f1f5f9; color: #475569; border: 1px solid #cbd5e1; }
.pcamsq-svc-badge--express  { background: #fef3c7; color: #92400e; border: 1px solid #fcd34d; }
.pcamsq-svc-badge--nextday  { background: #7c3aed; color: #ffffff; border: 1px solid #6d28d9; }

/* ── Wait time ────────────────────────────────────────────────────────────── */
.pcamsq-wait { font-size: 13px; font-weight: 600; color: var(--pcq-ink-3); }
.pcamsq-wait-urgent { color: var(--pcq-red); animation: pcamsq-pulse-red 1.5s ease-in-out infinite; }
@keyframes pcamsq-pulse-red { 0%,100%{opacity:1} 50%{opacity:.6} }
.pcamsq-held-by { color: var(--pcq-amber); font-size: 11px; }

/* ── Buttons ──────────────────────────────────────────────────────────────── */
.pcamsq-actions { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }

.pcamsq-btn {
    font-size: 12px !important;
    padding: 5px 12px !important;
    border-radius: var(--pcq-radius-sm) !important;
    font-family: var(--pcq-font) !important;
    font-weight: 600 !important;
    transition: all var(--pcq-transition) !important;
    cursor: pointer !important;
    border: 1px solid var(--pcq-border) !important;
    background: var(--pcq-surface) !important;
    color: var(--pcq-ink-2) !important;
    line-height: 1.5 !important;
}
.pcamsq-btn:hover {
    background: var(--pcq-surface-3) !important;
    border-color: var(--pcq-ink-3) !important;
    color: var(--pcq-ink) !important;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(15,23,42,.1) !important;
}

.pcamsq-btn-reject {
    color: var(--pcq-red-text) !important;
    border-color: #fca5a5 !important;
    background: #fff5f5 !important;
}
.pcamsq-btn-reject:hover { background: var(--pcq-red-bg) !important; }

.pcamsq-btn-refresh { font-size: 12px !important; }

.pcamsq-btn-reopen {
    color: var(--pcq-amber-text) !important;
    border-color: #fcd34d !important;
    background: #fffdf0 !important;
    font-size: 12px !important;
}
.pcamsq-btn-reopen:hover { background: var(--pcq-amber-bg) !important; }

.pcamsq-btn-danger {
    color: var(--pcq-red-text) !important;
    border-color: #fca5a5 !important;
    font-size: 12px !important;
}
.pcamsq-btn-danger:hover { background: var(--pcq-red-bg) !important; }

/* ── Empty state ──────────────────────────────────────────────────────────── */
.pcamsq-empty {
    padding: 52px 24px;
    text-align: center;
    color: var(--pcq-ink-4);
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}
.pcamsq-empty .dashicons {
    font-size: 24px; width: 24px; height: 24px;
    color: var(--pcq-green);
}

/* ── Search bar ───────────────────────────────────────────────────────────── */
.pcamsq-search-bar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    background: var(--pcq-surface-2);
    border-bottom: 1px solid var(--pcq-border);
}
.pcamsq-search-icon { font-size: 16px; flex-shrink: 0; color: var(--pcq-ink-4); }
.pcamsq-search-input {
    flex: 1;
    max-width: 400px;
    padding: 7px 13px;
    border: 1px solid var(--pcq-border);
    border-radius: var(--pcq-radius-sm);
    font-size: 13px;
    font-family: var(--pcq-font);
    background: var(--pcq-surface);
    color: var(--pcq-ink-2);
    outline: none;
    transition: border-color var(--pcq-transition), box-shadow var(--pcq-transition);
}
.pcamsq-search-input:focus {
    border-color: var(--pcq-accent);
    box-shadow: 0 0 0 3px var(--pcq-accent-glow);
}
.pcamsq-search-count {
    font-size: 12px;
    color: var(--pcq-ink-4);
    white-space: nowrap;
    font-weight: 500;
}

/* ── Modal ────────────────────────────────────────────────────────────────── */
.pcamsq-modal-bg {
    position: fixed;
    inset: 0;
    background: rgba(10,15,28,.6);
    z-index: 9998;
    backdrop-filter: blur(4px);
    animation: pcamsq-fade-in .18s ease;
}
.pcamsq-modal-box {
    position: fixed;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    background: var(--pcq-surface);
    border-radius: 14px;
    padding: 30px 34px;
    width: 460px;
    max-width: calc(100vw - 40px);
    z-index: 9999;
    box-shadow: var(--pcq-shadow-lg), 0 0 0 1px rgba(15,23,42,.06);
    animation: pcamsq-slide-up .22s cubic-bezier(.34,1.56,.64,1);
}
@keyframes pcamsq-fade-in   { from{opacity:0} to{opacity:1} }
@keyframes pcamsq-slide-up  { from{transform:translate(-50%,-44%);opacity:0} to{transform:translate(-50%,-50%);opacity:1} }

.pcamsq-modal-box h3 { margin-top: 0; font-size: 17px; font-weight: 700; color: var(--pcq-ink); }

.pcamsq-label {
    display: block;
    font-size: 12px;
    font-weight: 700;
    color: var(--pcq-ink-3);
    text-transform: uppercase;
    letter-spacing: .5px;
    margin-bottom: 5px;
}
.pcamsq-input {
    display: block;
    width: 100%;
    padding: 10px 13px;
    border: 1px solid var(--pcq-border);
    border-radius: var(--pcq-radius-sm);
    font-size: 14px;
    font-family: var(--pcq-font);
    color: var(--pcq-ink);
    background: var(--pcq-surface);
    outline: none;
    transition: border-color var(--pcq-transition), box-shadow var(--pcq-transition);
}
.pcamsq-input:focus {
    border-color: var(--pcq-accent);
    box-shadow: 0 0 0 3px var(--pcq-accent-glow);
}
.pcamsq-modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 22px;
}

/* ── Toast ────────────────────────────────────────────────────────────────── */
#pcamsq-toast {
    position: fixed;
    bottom: 28px; right: 28px;
    z-index: 99999;
    display: flex;
    flex-direction: column;
    gap: 8px;
    pointer-events: none;
}
.pcamsq-toast-msg {
    background: var(--pcq-ink);
    color: #fff;
    padding: 12px 20px;
    border-radius: var(--pcq-radius-sm);
    font-size: 13px;
    font-family: var(--pcq-font);
    font-weight: 500;
    box-shadow: var(--pcq-shadow-lg);
    animation: pcamsq-toast-in .22s cubic-bezier(.34,1.56,.64,1);
    pointer-events: auto;
    max-width: 340px;
    border-left: 3px solid #64748b;
}
.pcamsq-toast-msg.is-error   { border-left-color: var(--pcq-red);   background: #1c0a0a; }
.pcamsq-toast-msg.is-success { border-left-color: var(--pcq-green); background: #071a12; }
@keyframes pcamsq-toast-in { from{transform:translateX(50px);opacity:0} to{transform:none;opacity:1} }

/* ── Entry links ──────────────────────────────────────────────────────────── */
.pcamsq-entry-link {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 12px;
    font-weight: 700;
    color: var(--pcq-blue-text);
    text-decoration: none;
    padding: 3px 9px;
    background: var(--pcq-blue-bg);
    border: 1px solid #bfdbfe;
    border-radius: var(--pcq-radius-sm);
    transition: all var(--pcq-transition);
    white-space: nowrap;
    font-family: var(--pcq-mono);
}
.pcamsq-entry-link:hover {
    background: #bfdbfe;
    border-color: var(--pcq-blue);
    color: #1e40af;
    text-decoration: none;
    transform: translateY(-1px);
}
.pcamsq-entry-link-icon { font-size: 10px; opacity: .65; }

.pcamsq-id-code {
    background: var(--pcq-surface-3);
    border: 1px solid var(--pcq-border);
    border-radius: 4px;
    padding: 2px 8px;
    font-size: 12px;
    color: var(--pcq-ink-2);
    font-family: var(--pcq-mono);
    font-weight: 500;
}

/* ── Step badge ───────────────────────────────────────────────────────────── */
.pcamsq-step-badge {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    background: #5b21b6;
    color: #ffffff;
    border: none;
    border-radius: 20px;
    padding: 3px 10px;
    white-space: nowrap;
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Read-only banner ─────────────────────────────────────────────────────── */
.pcamsq-readonly-banner {
    background: var(--pcq-amber-bg);
    border: 1px solid #fcd34d;
    border-left: 4px solid var(--pcq-amber);
    border-radius: var(--pcq-radius-sm);
    padding: 12px 18px;
    font-size: 13px;
    font-weight: 500;
    color: var(--pcq-amber-text);
    margin-bottom: 18px;
}

/* ── Modal header ─────────────────────────────────────────────────────────── */
.pcamsq-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--pcq-border);
}
.pcamsq-modal-header h3 { margin: 0; font-size: 16px; font-weight: 700; }

.pcamsq-modal-gf-btn {
    font-size: 12px;
    font-weight: 700;
    color: var(--pcq-blue-text);
    background: var(--pcq-blue-bg);
    border: 1px solid #bfdbfe;
    border-radius: var(--pcq-radius-sm);
    padding: 5px 12px;
    text-decoration: none;
    white-space: nowrap;
    transition: all var(--pcq-transition);
}
.pcamsq-modal-gf-btn:hover {
    background: #bfdbfe;
    color: #1e40af;
    text-decoration: none;
}

/* ── Modal applicant card ─────────────────────────────────────────────────── */
.pcamsq-modal-applicant {
    background: linear-gradient(135deg, var(--pcq-surface-2), var(--pcq-surface-3));
    border: 1px solid var(--pcq-border);
    border-radius: var(--pcq-radius-sm);
    padding: 12px 16px;
    margin-bottom: 18px;
}
.pcamsq-modal-name {
    font-size: 15px;
    font-weight: 700;
    color: var(--pcq-ink);
    margin-bottom: 4px;
}
.pcamsq-modal-step { margin-top: 6px; }

/* ── Role cards ───────────────────────────────────────────────────────────── */
.pcamsq-role-info {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    flex: 1;
    min-width: 220px;
    border: 1px solid var(--pcq-border);
    border-radius: var(--pcq-radius);
    padding: 16px 18px;
    transition: box-shadow var(--pcq-transition);
}
.pcamsq-role-info:hover { box-shadow: var(--pcq-shadow-lg); }
.pcamsq-role-agent { border-top: 3px solid var(--pcq-blue);   background: #f8fbff; }
.pcamsq-role-super { border-top: 3px solid #7c3aed; background: #faf8ff; }
.pcamsq-role-icon  { font-size: 28px; flex-shrink: 0; }

/* ── Diagnostic panels ────────────────────────────────────────────────────── */
.pcamsq-diag-wrap {
    background: var(--pcq-surface-2);
    border: 1px solid var(--pcq-border);
    border-radius: var(--pcq-radius-sm);
    margin-bottom: 14px;
    overflow: hidden;
}
.pcamsq-diag-wrap summary {
    padding: 10px 16px;
    font-size: 13px;
    font-weight: 600;
    color: var(--pcq-ink-3);
    cursor: pointer;
    user-select: none;
    list-style: none;
    transition: background var(--pcq-transition);
}
.pcamsq-diag-wrap summary::-webkit-details-marker { display: none; }
.pcamsq-diag-wrap[open] summary {
    border-bottom: 1px solid var(--pcq-border);
    background: var(--pcq-surface-3);
    color: var(--pcq-ink);
}
.pcamsq-diag-body { padding: 16px; }

/* ── Reports page ─────────────────────────────────────────────────────────── */
.pcamsq-report-label {
    display: block;
    font-size: 11px;
    font-weight: 700;
    color: var(--pcq-ink-4);
    text-transform: uppercase;
    letter-spacing: .6px;
    margin-bottom: 6px;
}
.pcamsq-report-select, .pcamsq-report-date {
    padding: 9px 12px;
    border: 1px solid var(--pcq-border);
    border-radius: var(--pcq-radius-sm);
    font-size: 13px;
    font-family: var(--pcq-font);
    color: var(--pcq-ink);
    background: var(--pcq-surface);
    outline: none;
    transition: border-color var(--pcq-transition), box-shadow var(--pcq-transition);
    height: 38px;
}
.pcamsq-report-select { min-width: 250px; }
.pcamsq-report-select:focus, .pcamsq-report-date:focus {
    border-color: var(--pcq-accent);
    box-shadow: 0 0 0 3px var(--pcq-accent-glow);
}

.pcamsq-shortcut {
    font-size: 12px !important;
    height: 30px !important;
    padding: 0 12px !important;
    color: var(--pcq-ink-3) !important;
    border-radius: 20px !important;
    font-weight: 600 !important;
    border: 1px solid var(--pcq-border) !important;
    background: var(--pcq-surface) !important;
    transition: all var(--pcq-transition) !important;
    font-family: var(--pcq-font) !important;
}
.pcamsq-shortcut:hover {
    background: var(--pcq-ink) !important;
    border-color: var(--pcq-ink) !important;
    color: #fff !important;
    transform: translateY(-1px);
}

#pcamsq-report-output { min-height: 140px; }

/* Report table specific — ensure text is ALWAYS readable */
#pcamsq-report-output .pcamsq-table th {
    background: var(--pcq-ink);
    color: #f1f5f9;
}
#pcamsq-report-output .pcamsq-table td {
    color: var(--pcq-ink-2);
    background: transparent;
}
#pcamsq-report-output .pcamsq-table tfoot td {
    background: var(--pcq-surface-3);
    color: var(--pcq-ink);
}

/* Location breakdown bar */
.pcamsq-loc-bar-wrap {
    display: flex; align-items: center; gap: 8px;
}
.pcamsq-loc-bar-track {
    flex: 1; background: var(--pcq-border); border-radius: 4px; height: 6px; overflow: hidden;
}
.pcamsq-loc-bar-fill {
    height: 100%; background: var(--pcq-accent); border-radius: 4px;
    transition: width .6s cubic-bezier(.4,0,.2,1);
}
.pcamsq-loc-pct { font-size: 11px; color: var(--pcq-ink-4); min-width: 32px; text-align: right; font-weight: 600; }

/* Collector badges */
.pcamsq-collector-badge-sm {
    display: inline-flex;
    align-items: center;
    padding: 2px 9px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .4px;
}
.pcamsq-badge-applicant-sm { background: var(--pcq-green-bg);  color: var(--pcq-green-text); }
.pcamsq-badge-bearer-sm    { background: var(--pcq-amber-bg);  color: var(--pcq-amber-text); }

/* ── Print ────────────────────────────────────────────────────────────────── */
@media print {
    .pcamsq-card-header button, .pcamsq-btn, .pcamsq-diag-wrap,
    .pcamsq-stats-bar, .pcamsq-live-dot,
    #wpadminbar, #adminmenu, #adminmenuwrap, #wpfooter, .notice {
        display: none !important;
    }
    .wrap { margin: 0 !important; }
    .pcamsq-table th { background: #1e293b !important; color: #fff !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* ── Bulk Close Out Toolbar ──────────────────────────────────────────────── */
#pcamsq-bulk-toolbar {
    position:sticky; top:32px; z-index:100;
    background:linear-gradient(135deg,#1e293b,#0f172a);
    border:1px solid #6366f1; border-radius:10px;
    padding:10px 18px; margin-bottom:14px;
    box-shadow:0 4px 18px rgba(99,102,241,.35);
}
.pcamsq-bulk-inner {
    display:flex; align-items:center; gap:12px; flex-wrap:wrap;
}
.pcamsq-bulk-count {
    font-size:13px; font-weight:800; color:#e2e8f0; flex:1;
}
.pcamsq-bulk-count span { color:#818cf8; font-size:18px; }
.pcamsq-bulk-btn-clear {
    font-size:12px !important; padding:4px 10px !important;
    background:#334155 !important; color:#94a3b8 !important;
    border-color:#475569 !important;
}
.pcamsq-bulk-btn-clear:hover { color:#e2e8f0 !important; }
.pcamsq-bulk-btn-closeout {
    background:#6366f1 !important; border-color:#6366f1 !important;
    color:#fff !important; font-weight:700 !important;
}
.pcamsq-bulk-btn-closeout:hover { background:#4f46e5 !important; }

/* ── Row checkboxes ──────────────────────────────────────────────────────── */
.pcamsq-th-check, .pcamsq-td-check {
    width:32px !important; min-width:32px; text-align:center !important;
}
.pcamsq-row-check { cursor:pointer; width:15px; height:15px; }
tr.pcamsq-row-selected td { background:#eef2ff !important; }
tr.pcamsq-row-selected .pcamsq-row-check { accent-color:#6366f1; }

/* ── Bulk close out modal list ───────────────────────────────────────────── */
.pcamsq-bulk-names-list {
    max-height:160px; overflow-y:auto;
    background:#f8fafc; border:1px solid #e2e8f0;
    border-radius:8px; padding:10px 14px;
}
.pcamsq-bulk-name-items {
    margin:0; padding-left:18px; font-size:13px; color:#1e293b;
}
.pcamsq-bulk-name-items li { padding:2px 0; }

/* ── Progress bar ────────────────────────────────────────────────────────── */
.pcamsq-bulk-progress-bar {
    width:100%; height:8px; background:#e2e8f0;
    border-radius:99px; overflow:hidden; margin-bottom:6px;
}
.pcamsq-bulk-progress-fill {
    height:100%; background:linear-gradient(90deg,#6366f1,#22c55e);
    border-radius:99px; transition:width .4s ease;
}

.pcamsq-svc-nextday { background:#7f1d1d; color:#fef2f2; padding:2px 8px; border-radius:4px; font-size:11px; font-weight:700; white-space:nowrap; }

/* ── WP Admin overrides — force correct contrast regardless of WP admin theme ── */
/* WP admin stylesheets set h1/h2 with their own colors at high specificity.       */
/* These rules restore our design system colors inside .pcamsq-wrap on admin pages. */

body.wp-admin .pcamsq-wrap h1,
body.wp-admin .pcamsq-wrap h1.pcamsq-heading {
    color: #0f172a !important;
    font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}

body.wp-admin .pcamsq-wrap .pcamsq-card-header h2,
body.wp-admin .pcamsq-wrap .pcamsq-card-header h2 {
    color: #1e293b !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: .7px !important;
    margin: 0 !important;
    font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}

/* Stat numbers and labels */
body.wp-admin .pcamsq-wrap .pcamsq-stat-num   { color: #0f172a !important; }
body.wp-admin .pcamsq-wrap .pcamsq-stat-label { color: #475569 !important; }
body.wp-admin .pcamsq-wrap .pcamsq-stat-held .pcamsq-stat-num  { color: #d97706 !important; }
body.wp-admin .pcamsq-wrap .pcamsq-stat-done .pcamsq-stat-num  { color: #059669 !important; }

/* Location / readonly banners */
body.wp-admin .pcamsq-wrap .pcamsq-location-banner     { color: #fff !important; }
body.wp-admin .pcamsq-wrap .pcamsq-readonly-banner     { color: #92400e !important; }

/* Section headings inside override panel */
body.wp-admin .pcamsq-wrap h2 {
    color: #1e293b !important;
    font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}

/* Date badge */
body.wp-admin .pcamsq-wrap .pcamsq-date-badge { color: #475569 !important; }

/* ID codes */
body.wp-admin .pcamsq-wrap .pcamsq-id-code { color: #1e3a5f !important; }

/* Table header text already #e2e8f0 on dark bg — ensure it stays */
body.wp-admin .pcamsq-wrap .pcamsq-table th { color: #e2e8f0 !important; }


/* ── Interview edit modal ──────────────────────────────────────────────── */
.pcamsq-int-edit-box {
    width: min(1240px, calc(100vw - 20px));
    max-height: calc(100vh - 24px);
    overflow: auto;
}
.pcamsq-int-edit-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(320px, .9fr);
    gap: 20px;
    align-items: start;
}
.pcamsq-int-edit-fields-wrap,
.pcamsq-int-edit-photo-card,
.pcamsq-int-edit-missing {
    background: #f8fafc;
    border: 1px solid var(--pcq-border);
    border-radius: 12px;
    padding: 14px;
}
/* Crop-wrap sits below the photo card — no separate box */
.pcamsq-int-edit-crop-wrap {
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 0;
    margin-top: 10px;
}
.pcamsq-int-edit-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(220px, 1fr));
    gap: 14px;
}
.pcamsq-int-edit-field-group--name {
    grid-column: 1 / -1;
}
.pcamsq-int-edit-field-group {
    display: block;
}
.pcamsq-int-edit-field-group textarea,
.pcamsq-int-edit-field-group select,
.pcamsq-int-edit-field-group input {
    margin-top: 6px;
}
.pcamsq-int-edit-name-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}
.pcamsq-int-edit-name-grid label span {
    display: block;
    font-size: 11px;
    color: #64748b;
    margin-bottom: 4px;
}
.pcamsq-int-edit-photo-wrap {
    display: grid;
    gap: 14px;
}
.pcamsq-int-edit-photo-title {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .05em;
    font-weight: 800;
    color: #334155;
    margin-bottom: 10px;
}
.pcamsq-int-edit-current-photo {
    width: 100%;
    min-height: 250px;
    border-radius: 12px;
    border: 1px dashed #cbd5e1;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.pcamsq-int-edit-current-photo img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
}
.pcamsq-int-edit-photo-empty {
    color: #94a3b8;
    font-size: 13px;
    text-align: center;
    padding: 30px 14px;
}
.pcamsq-int-edit-photo-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 12px;
}
#pcamsq-int-edit-canvas {
    display: block;
    width: 100%;
    max-width: 320px;
    margin: 0 auto;
    border-radius: 12px;
    border: 1px solid #cbd5e1;
    background: #0f172a;
    cursor: grab;
}
#pcamsq-int-edit-canvas:active {
    cursor: grabbing;
}
.pcamsq-int-edit-range {
    display: block;
    width: 100%;
    margin-top: 8px;
}
.pcamsq-int-edit-check-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 8px;
}
.pcamsq-int-edit-check {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #334155;
}
.pcamsq-int-edit-missing {
    margin-bottom: 14px;
    font-size: 13px;
    color: #92400e;
    background: #fff7ed;
    border-color: #fed7aa;
}

.pcamsq-company-lookup { position: relative; }
.pcamsq-company-row {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 8px;
    align-items: center;
}
.pcamsq-company-lookup-input { width: 100%; cursor: text; }
.pcamsq-company-open {
    min-width: 42px;
    padding: 8px 10px !important;
    font-size: 14px !important;
}
.pcamsq-company-helper {
    margin-top: 6px;
    font-size: 11px;
    color: #64748b;
}
.pcamsq-company-add-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin-top: 10px;
    padding: 8px 12px;
    border: 1px solid #93c5fd;
    border-radius: 10px;
    background: #eff6ff;
    color: #1e3a8a;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
    text-decoration: none;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
}
.pcamsq-company-add-link:hover,
.pcamsq-company-add-link:focus,
.pcamsq-company-add-link:focus-visible {
    background: #dbeafe;
    border-color: #60a5fa;
    color: #1e3a8a;
    text-decoration: none;
    outline: none;
    box-shadow: 0 0 0 3px rgba(59,130,246,.18);
}
.pcamsq-company-add-link:active {
    background: #bfdbfe;
    border-color: #3b82f6;
    color: #172554;
}
.pcamsq-company-results {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% - 2px);
    z-index: 40;
    background: #fff;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    box-shadow: 0 10px 24px rgba(15,23,42,.12);
    max-height: 240px;
    overflow: auto;
    padding: 6px;
}
.pcamsq-company-results-title {
    padding: 8px 10px 6px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #64748b;
}
.pcamsq-company-result {
    width: 100%;
    text-align: left;
    border: 0;
    background: transparent;
    border-radius: 10px;
    padding: 10px 12px;
    cursor: pointer;
}
.pcamsq-company-result:hover {
    background: #eff6ff;
}
.pcamsq-company-main {
    display: block;
    font-weight: 600;
    color: #0f172a;
}
.pcamsq-company-meta {
    display: block;
    margin-top: 3px;
    font-size: 11px;
    color: #64748b;
}
.pcamsq-btn-sm {
    padding: 8px 12px !important;
    font-size: 12px !important;
    line-height: 1.1;
    white-space: nowrap;
}
.pcamsq-int-edit-company-note {
    margin-bottom: 14px;
    font-size: 13px;
    color: #075985;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 12px;
    padding: 12px 14px;
}
@media (max-width: 980px) {
    .pcamsq-int-edit-grid {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 680px) {
    .pcamsq-int-edit-fields,
    .pcamsq-int-edit-name-grid,
    .pcamsq-int-edit-check-grid {
        grid-template-columns: 1fr;
    }
}


/* Queue image review popup ----------------------------------------------- */
.pcamsq-image-review-box {
    width: min(1100px, 94vw);
}
.pcamsq-image-review-tabs {
    display: flex;
    gap: 8px;
    margin: 8px 0 14px;
    flex-wrap: wrap;
}
.pcamsq-image-review-tab {
    border: 1px solid #cbd5e1;
    background: #fff;
    color: #0f172a;
    border-radius: 999px;
    padding: 8px 14px;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}
.pcamsq-image-review-tab.is-active {
    background: #0f172a;
    border-color: #0f172a;
    color: #fff;
}
.pcamsq-image-review-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 18px;
}
.pcamsq-image-review-stage {
    min-width: 0;
}
.pcamsq-image-review-preview,
.pcamsq-image-review-crop-wrap {
    border: 1px solid #e2e8f0;
    background: #f8fafc;
    border-radius: 14px;
    min-height: 540px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
}
.pcamsq-image-review-preview img {
    max-width: 100%;
    max-height: 510px;
    width: auto;
    height: auto;
    object-fit: contain;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(15,23,42,.12);
}
.pcamsq-image-review-pdf,
.pcamsq-image-review-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    text-align: center;
    color: #475569;
    font-size: 14px;
}
.pcamsq-image-review-pdf-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 90px;
    height: 90px;
    border-radius: 18px;
    background: #e0f2fe;
    color: #075985;
    font-weight: 900;
    font-size: 24px;
}
.pcamsq-image-review-side {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.pcamsq-image-review-status {
    border: 1px solid #e2e8f0;
    background: #fff;
    border-radius: 14px;
    padding: 12px 14px;
    color: #334155;
    font-size: 13px;
    line-height: 1.5;
}
.pcamsq-image-review-actions {
    display: grid;
    gap: 10px;
}
#pcamsq-image-review-canvas {
    width: min(100%, 560px);
    height: auto;
    display: block;
    margin: 0 auto;
    border-radius: 12px;
    background: #0f172a;
}
@media (max-width: 900px) {
    .pcamsq-image-review-grid {
        grid-template-columns: 1fr;
    }
    .pcamsq-image-review-preview,
    .pcamsq-image-review-crop-wrap {
        min-height: 380px;
    }
}


/* Image review close button contrast fix */
#pcamsq-image-review-cancel {
    background: #f8fafc !important;
    color: #0f172a !important;
    border: 1px solid #cbd5e1 !important;
    text-shadow: none !important;
}
#pcamsq-image-review-cancel:hover,
#pcamsq-image-review-cancel:focus {
    background: #e2e8f0 !important;
    color: #0f172a !important;
    border-color: #94a3b8 !important;
    box-shadow: 0 0 0 3px rgba(148,163,184,.18);
    outline: none;
}


/* Interview closeout modal sizing */
#pcamsq-closeout-modal .pcamsq-modal-box {
    width: min(980px, calc(100vw - 18px));
    max-height: calc(100vh - 20px);
    overflow: auto;
}
#pcamsq-closeout-modal .pcamsq-modal-actions {
    position: sticky;
    bottom: -30px;
    background: #ffffff;
    padding-top: 14px;
    margin-top: 18px;
    border-top: 1px solid var(--pcq-border);
    flex-wrap: wrap;
    gap: 10px;
    z-index: 5;
}
@media (max-width: 680px) {
    #pcamsq-closeout-modal .pcamsq-modal-actions {
        justify-content: stretch;
    }
    #pcamsq-closeout-modal .pcamsq-modal-actions .button {
        width: 100%;
        justify-content: center;
    }
}


/* Closeout header layout cleanup */
.pcamsq-closeout-header {
    align-items: flex-start;
    gap: 18px;
}
.pcamsq-closeout-header-main {
    min-width: 0;
    flex: 1;
}
.pcamsq-closeout-step {
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    min-width: 220px;
}
.pcamsq-closeout-step > * {
    max-width: 100%;
}
@media (max-width: 760px) {
    .pcamsq-closeout-header {
        flex-direction: column;
        align-items: stretch;
    }
    .pcamsq-closeout-step {
        min-width: 0;
        justify-content: flex-start;
    }
}


.pcamsq-closeout-topgrid {
    display: grid;
    grid-template-columns: minmax(260px, 0.95fr) minmax(320px, 1.05fr);
    gap: 14px;
    align-items: start;
    margin: 0 0 16px;
}
.pcamsq-closeout-topgrid .pcamsq-closeout-card {
    min-width: 0;
}
@media (max-width: 860px) {
    .pcamsq-closeout-topgrid {
        grid-template-columns: 1fr;
    }
}

/* Image tools */
.pcamsq-int-edit-tool-actions,
.pcamsq-image-review-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.pcamsq-int-edit-tool-actions .button,
.pcamsq-image-review-actions .button {
    min-width: 88px;
    text-align: center;
    justify-content: center;
}
#pcamsq-int-edit-whitebg,
#pcamsq-image-review-whitebg {
    background: #fff7ed;
    border-color: #fdba74;
    color: #9a3412;
}





/* ── Modal overlay wrapper (appended to body by pcamsqShowModal) ── */
#pcamsq-modal-overlay-wrap {
    position: fixed !important;
    inset: 0 !important;
    z-index: 99990 !important;
    display: none;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(10,15,28,.6) !important;
    backdrop-filter: blur(3px) !important;
    padding: 20px;
    box-sizing: border-box;
}
#pcamsq-modal-overlay-wrap .pcamsq-modal-box {
    position: relative !important;
    top: auto !important; left: auto !important;
    transform: none !important;
    max-height: 88vh !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    animation: pcamsq-slide-up .22s cubic-bezier(.34,1.56,.64,1) !important;
    flex-shrink: 0;
}
body.pcamsq-modal-open { overflow: hidden !important; }
