/* ═══════════════════════════════════════════════════════════════════════
   QCF Manager Dashboard — "Assessment Ledger" system
═══════════════════════════════════════════════════════════════════════ */
.qcf-manager-wrap { font-family: var(--qcf-font-body); color: var(--qcf-ink); }

.qcf-mgr-header { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 12px; margin-bottom: 22px; }

.qcf-mgr-qs-intro { color: var(--qcf-muted); font-size: .9rem; margin: 0 0 18px; }
.qcf-mgr-qs-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.qcf-mgr-qs-card {
    display: flex; flex-direction: column; gap: 10px;
    background: var(--qcf-paper); border: 1px solid var(--qcf-line); border-radius: var(--qcf-radius);
    padding: 18px 20px; text-decoration: none; color: inherit;
    box-shadow: var(--qcf-shadow-sm); transition: box-shadow .15s, border-color .15s;
}
.qcf-mgr-qs-card:hover { box-shadow: var(--qcf-shadow); border-color: var(--qcf-signal); }
.qcf-mgr-qs-card-title { font-family: var(--qcf-font-display); font-weight: 600; color: var(--qcf-ledger); font-size: 1rem; }
.qcf-mgr-qs-card-cta { font-size: .82rem; color: var(--qcf-signal); font-weight: 600; }
.qcf-mgr-title { font-family: var(--qcf-font-display); font-weight: 600; margin: 0; font-size: 1.4rem; color: var(--qcf-ledger); }
.qcf-mgr-subtitle { font-size: .84rem; color: var(--qcf-muted); margin-top: 2px; }
.qcf-mgr-header-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

.qcf-mgr-cards { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 22px; }
.qcf-mgr-card {
    background: var(--qcf-paper);
    border: 1px solid var(--qcf-line);
    border-top: 3px solid var(--qcf-ledger);
    border-radius: var(--qcf-radius);
    padding: 16px 22px;
    min-width: 130px;
    text-align: center;
    box-shadow: var(--qcf-shadow-sm);
}
.qcf-mgr-card-num { display: block; font-family: var(--qcf-font-display); font-size: 2.1rem; font-weight: 600; color: var(--qcf-ledger); line-height: 1; }
.qcf-mgr-card-lbl { font-family: var(--qcf-font-mono); font-size: .7rem; text-transform: uppercase; letter-spacing: .05em; color: var(--qcf-muted); margin-top: 6px; display: block; }
.qcf-card-green { border-top-color: var(--qcf-verified); } .qcf-card-green .qcf-mgr-card-num { color: var(--qcf-verified); }
.qcf-card-amber { border-top-color: var(--qcf-amber); background: var(--qcf-amber-bg); } .qcf-card-amber .qcf-mgr-card-num { color: #92400E; }
.qcf-card-red   { border-top-color: var(--qcf-danger); background: var(--qcf-danger-bg); } .qcf-card-red   .qcf-mgr-card-num { color: var(--qcf-danger); }

.qcf-mgr-filters { display: flex; gap: 10px; margin-bottom: 16px; flex-wrap: wrap; align-items: center; }

/* Export CSV — in filter bar, always visible */
.qcf-btn-export {
    margin-left: auto;
    display: inline-flex; align-items: center; gap: 6px;
    background: var(--qcf-ledger); color: #fff;
    border: none; border-radius: var(--qcf-radius);
    padding: 8px 16px; font-size: .84rem; font-weight: 600;
    cursor: pointer; white-space: nowrap; transition: opacity .15s;
}
.qcf-btn-export:hover { opacity: .88; }

.qcf-mgr-table-wrap { overflow-x: auto; border: 1px solid var(--qcf-line); border-radius: var(--qcf-radius); }
.qcf-mgr-table { width: 100%; border-collapse: collapse; font-size: .88rem; font-family: var(--qcf-font-body); }
.qcf-mgr-table th {
    background: var(--qcf-ledger);
    color: #fff;
    padding: 11px 14px;
    text-align: left;
    font-family: var(--qcf-font-mono);
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-weight: 600;
    white-space: nowrap;
}
.qcf-mgr-table td { padding: 11px 14px; border-bottom: 1px solid var(--qcf-line); }
.qcf-mgr-table tr:last-child td { border-bottom: none; }
.qcf-mgr-table tr:hover td { background: var(--qcf-canvas); }
.qcf-mgr-empty { text-align: center; color: var(--qcf-muted); padding: 36px; font-style: italic; }

/* Sticky actions column — always visible even when table scrolls */
.qcf-mgr-table th:last-child,
.qcf-mgr-table td:last-child {
    position: sticky;
    right: 0;
    background: inherit;
    z-index: 2;
    box-shadow: -2px 0 6px rgba(0,0,0,.06);
    white-space: nowrap;
    min-width: 80px;
}
.qcf-mgr-table th:last-child { background: var(--qcf-ledger); z-index: 3; }
.qcf-mgr-table tr:hover td:last-child { background: var(--qcf-canvas); }

/* Drawer top bar with visible close button */
.qcf-mgr-drawer-topbar {
    display: flex; align-items: center; justify-content: space-between;
    padding: 16px 26px;
    border-bottom: 2px solid var(--qcf-line);
    background: var(--qcf-ledger);
    position: sticky; top: 0; z-index: 10;
}
.qcf-mgr-drawer-heading {
    font-size: 1rem; font-weight: 700; color: #fff;
    font-family: var(--qcf-font-display);
}
.qcf-mgr-drawer-close {
    display: inline-flex; align-items: center; gap: 6px;
    background: rgba(255,255,255,.2); border: 1px solid rgba(255,255,255,.4);
    color: #fff; border-radius: 6px;
    padding: 6px 14px; font-size: .84rem; font-weight: 600;
    cursor: pointer; transition: background .15s;
}

.qcf-mgr-progress-wrap { display: flex; align-items: center; gap: 8px; }
.qcf-mgr-progress-bar { flex: 1; height: 6px; background: var(--qcf-canvas); border-radius: 100px; overflow: hidden; min-width: 60px; }
.qcf-mgr-progress-fill { height: 100%; background: var(--qcf-verified); border-radius: 100px; }
.qcf-mgr-progress-pct { font-family: var(--qcf-font-mono); font-size: .76rem; white-space: nowrap; color: var(--qcf-muted); }

.qcf-mgr-drawer {
    position: fixed; right: 0; top: 0; height: 100vh; width: 520px; max-width: 95vw;
    background: var(--qcf-paper); box-shadow: var(--qcf-shadow-lg); z-index: 99999; overflow-y: auto;
    border-left: 1px solid var(--qcf-line);
}
.qcf-mgr-drawer-inner { padding: 26px; font-family: var(--qcf-font-body); }
.qcf-mgr-drawer-close:hover { background: rgba(255,255,255,.3); }
.qcf-loading { color: var(--qcf-muted); font-style: italic; }

.qcf-mgr-drawer:focus-visible,
.qcf-mgr-drawer-close:focus-visible { outline: 2px solid var(--qcf-signal); outline-offset: 2px; }
