/* ── Variables ── */
:root {
  --bg:#F5F5F5;--shell:#fff;--shell-border:#E0E0E0;
  --sidebar:#003366;--sidebar-border:#002B57;
  --brand:#fff;--nav:rgba(255,255,255,.75);--nav-hover:rgba(255,255,255,.1);--nav-active:rgba(255,255,255,.18);--nav-active-border:transparent;
  --topbar:#fff;--topbar-border:#E0E0E0;
  --text:#1A1A1A;--text-muted:#555;--text-faint:#888;--text-tiny:#999;
  --btn-bg:#F5F5F5;--btn-border:#D5D5D5;--btn-color:#333;--btn-hover:#EBEBEB;
  --input-bg:#fff;--input-border:#D5D5D5;
  --divider:#E0E0E0;--border:#E0E0E0;
  --primary:#003366;--primary-hover:#002850;--primary-light:#E6EDF5;
  --btn-text:#FFFFFF;
  --badge-draft-bg:#FEF3E0;--badge-draft-color:#B45309;
  --badge-approved-bg:#DCFCE7;--badge-approved-color:#15803D;
  --badge-ACTIVE-bg:#DCFCE7;--badge-ACTIVE-color:#15803D;
  --badge-INACTIVE-bg:#FEE2E2;--badge-INACTIVE-color:#DC2626;
  --badge-DROP-OFF-bg:#FEF3E0;--badge-DROP-OFF-color:#E65100;
  --badge-open-bg:#E0F2FE;--badge-open-color:#0369A1;
  --badge-completed-bg:#DCFCE7;--badge-completed-color:#15803D;
  --badge-aborted-bg:#F1F5F9;--badge-aborted-color:#94A3B8;
  --danger:#DC2626;--danger-hover:#B91C1C;
  --table-header:#F5F5F5;--table-hover:#F0F0F0;--table-border:#E0E0E0;--table-sel:#E8F5EC;
  --stat-bg:#F5F5F5;--stat-border:#E0E0E0;
}
.dark {
  --bg:#111;--shell:#1A1A1A;--shell-border:#2E2E2E;
  --sidebar:#002347;--sidebar-border:#001D3B;
  --brand:#E8E8E3;--nav:rgba(255,255,255,.6);--nav-hover:rgba(255,255,255,.08);--nav-active:rgba(255,255,255,.15);--nav-active-border:transparent;
  --topbar:#1A1A1A;--topbar-border:#2A2A2A;
  --text:#E8E8E3;--text-muted:#AAA;--text-faint:#777;--text-tiny:#666;
  --btn-bg:#252525;--btn-border:#3A3A3A;--btn-color:#CCC;--btn-hover:#2E2E2E;
  --input-bg:#252525;--input-border:#3A3A3A;
  --divider:#2A2A2A;--border:#2A2A2A;
  --primary-light:#0A1A2E;
  --badge-draft-bg:#3A2800;--badge-draft-color:#FAC775;
  --badge-approved-bg:#0D2E1A;--badge-approved-color:#56D48B;
  --badge-ACTIVE-bg:#0D2E1A;--badge-ACTIVE-color:#56D48B;
  --badge-INACTIVE-bg:#3A0A0A;--badge-INACTIVE-color:#F09595;
  --badge-DROP-OFF-bg:#3A2200;--badge-DROP-OFF-color:#FFB74D;
  --badge-open-bg:#0A1A3A;--badge-open-color:#6BA3FF;
  --badge-completed-bg:#0D2E1A;--badge-completed-color:#56D48B;
  --badge-aborted-bg:#252525;--badge-aborted-color:#888;
  --danger:#F44336;--danger-hover:#D32F2F;
  --table-header:#1E1E1E;--table-hover:#222;--table-border:#333;--table-sel:#0D2E1A;
  --stat-bg:#1E1E1E;--stat-border:#333;
}

.dark body{background:#002347;}
.dark .sidebar{background:#002347;}
.dark .shell::after{background:#002347;}

/* ── Reset ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}

/* ── Scrollbars ── */
*{scrollbar-width:thin;scrollbar-color:#B9C2CC transparent;}
::-webkit-scrollbar{width:8px;height:8px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:#B9C2CC;border-radius:4px;}
::-webkit-scrollbar-thumb:hover{background:#98A3AF;}
::-webkit-scrollbar-corner{background:transparent;}
.sidebar{scrollbar-color:rgba(255,255,255,.3) transparent;}
.sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.3);}
.sidebar::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.45);}
.dark *{scrollbar-color:#4A4A4A transparent;}
.dark ::-webkit-scrollbar-thumb{background:#4A4A4A;}
.dark ::-webkit-scrollbar-thumb:hover{background:#5E5E5E;}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:14px;background:#003366;color:var(--text);height:100vh;display:flex;align-items:center;justify-content:center;transition:color .2s;}

/* ── Login ── */
.login-card{background:var(--shell);border-radius:12px;padding:48px 40px;width:380px;box-shadow:0 2px 12px rgba(0,0,0,.08);text-align:center;}
.login-card h1{font-size:20px;font-weight:700;margin-bottom:4px;}
.login-card p{font-size:13px;color:var(--text-muted);margin-bottom:32px;}
.login-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:12px 16px;border-radius:8px;border:1px solid var(--divider);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s;background:var(--shell);color:var(--text);text-decoration:none;margin-bottom:10px;}
.login-btn:hover{border-color:var(--primary);background:var(--primary-light);}
.login-btn.primary{background:var(--primary);color:var(--btn-text);border-color:var(--primary);}
.login-btn.primary:hover{background:var(--primary-hover);}
.login-btn svg{width:20px;height:20px;flex-shrink:0;}

/* ── Shell ── */
.shell{display:none;grid-template-columns:210px 1fr 8px;width:100vw;height:calc(100vh - 12px);margin:6px 0;background:transparent;border:none;border-radius:0;box-shadow:none;overflow:hidden;}
.shell::after{content:'';background:#003366;}
.shell.visible{display:grid;}

/* ── Sidebar ── */
.sidebar{background:#003366;border-right:none;padding:16px 10px;display:flex;flex-direction:column;gap:2px;overflow-y:auto;}
.sidebar-brand{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:10px 10px 12px;border-bottom:1px solid rgba(255,255,255,.2);margin-bottom:8px;}
.sidebar-brand-logo{height:34px;width:auto;background:#fff;padding:6px 10px;border-radius:6px;box-sizing:border-box;}
.sidebar-brand-text{font-size:20px;font-weight:600;color:rgba(255,255,255,.85);letter-spacing:.12em;text-transform:uppercase;padding-left:2px;}
.sidebar-label{font-size:10px;color:rgba(255,255,255,.45);text-transform:uppercase;letter-spacing:.14em;padding:14px 10px 5px;font-weight:700;margin-top:8px;border-top:1px solid rgba(255,255,255,.08);}
.sidebar-brand+.sidebar-label{border-top:none;margin-top:0;padding-top:6px;}
.nav-item{display:block;width:100%;text-align:left;padding:7px 10px;border-radius:6px;font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;color:#fff;background:transparent;border:1px solid transparent;text-shadow:0 1px 2px rgba(0,0,0,.15);}
.nav-item:hover{background:var(--nav-hover);}
.nav-badge{background:#EF4444;color:#fff;font-size:10px;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px;line-height:1;}
.msg-task-row{border:1px solid var(--divider);border-radius:8px;padding:10px 12px;margin-bottom:8px;}
.msg-task-head{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;}
.msg-thread{margin-top:10px;border-top:1px solid var(--divider);padding-top:10px;max-height:260px;overflow-y:auto;}
.msg-bubble{max-width:75%;padding:8px 12px;border-radius:10px;margin-bottom:6px;font-size:12.5px;line-height:1.45;}
.msg-bubble.from-cm{background:var(--bg);border:1px solid var(--divider);margin-right:auto;}
.msg-bubble.from-admin{background:#003366;color:#fff;margin-left:auto;}
.msg-bubble .msg-meta{font-size:10px;opacity:.7;margin-top:3px;}
.nav-item.active{background:var(--nav-active);color:#fff;border:1px solid var(--nav-active-border);font-weight:600;box-shadow:none;}
.sidebar-footer{margin-top:auto;padding:10px 10px 0;border-top:1px solid rgba(255,255,255,.2);font-size:11px;color:rgba(255,255,255,.75);line-height:1.6;text-shadow:0 1px 2px rgba(0,0,0,.1);}
.sidebar-footer a{color:#fff;}
.dark-toggle{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.2);border-radius:6px;padding:3px 8px;cursor:pointer;font-size:13px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.1);}
.dark-toggle:hover{background:rgba(255,255,255,.25);}

/* ── Main ── */
.main{display:flex;flex-direction:column;overflow:hidden;background:var(--shell);border-radius:12px;}
.main.flat-bottom{border-bottom-left-radius:0;border-bottom-right-radius:0;}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--topbar-border);background:var(--topbar);flex-shrink:0;}
.topbar-title{font-size:15px;font-weight:600;}
.topbar-actions{display:flex;gap:8px;align-items:center;}
.btn-group{display:flex;align-items:center;gap:4px;border:1px solid var(--divider);border-radius:6px;padding:2px 6px;}
.btn-group-label{font-size:10px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.03em;margin-right:2px;white-space:nowrap;}

/* ── Buttons ── */
.btn{padding:7px 14px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--btn-color);transition:background .1s;}
.btn:hover{background:var(--btn-hover);}
.btn.primary{background:var(--primary);color:#fff;border-color:var(--primary);}
.btn.primary:hover{background:var(--primary-hover);}
.btn.danger{background:var(--danger);color:#fff;border-color:var(--danger);}
.btn.danger:hover{background:var(--danger-hover);}
.btn:disabled{opacity:.5;cursor:not-allowed;}
.btn-sm{padding:3px 8px;font-size:11px;}

/* ── Pages ── */
.page{display:none;flex:1;overflow:hidden;flex-direction:column;}
.page.active{display:flex;}
.page-body{flex:1;overflow-y:auto;padding:20px;}
.settings-tabs{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:20px;}
.settings-tab{padding:10px 20px;font-size:13px;font-weight:600;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;color:var(--text-muted);cursor:pointer;}
.settings-tab:hover{color:var(--text);}
.settings-tab.active{color:var(--primary);border-bottom-color:var(--primary);}
#batch-table-wrap{flex:1;overflow-y:auto;}
#batch-table-wrap .data-table{width:auto;}
/* the buckets page-body is overflow:hidden by design — the LIST scrolls */
#bucket-table-wrap{flex:1 1 0;min-height:0;overflow-y:auto;}
/* same for audit and users: the table gets the scroll, sticky headers clip */
#audit-table-wrap{flex:1 1 0;min-height:0;overflow-y:auto;}
#users-body{flex:1 1 0;min-height:0;overflow-y:auto;}
.batch-bases-cell{font-size:11px;max-width:180px;line-height:1.4;}
.copy-cell{display:flex;align-items:center;gap:4px;}
.copy-btn{display:none;position:relative;border:none;outline:none;background:#333;cursor:pointer;padding:5px;line-height:0;color:#ccc;border-radius:6px;transition:background .15s,color .15s;}
.dark .copy-btn{background:#444;}
.copy-cell:hover .copy-btn{display:inline-flex;align-items:center;}
.copy-btn:hover{background:#444;color:#fff;}
.dark .copy-btn:hover{background:#555;color:#fff;}
.copy-btn.copied{background:var(--primary);color:#fff;}
.copy-tip{display:none;position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);background:#222;color:#fff;font-size:11px;padding:5px 8px;border-radius:4px;white-space:nowrap;pointer-events:none;z-index:10;line-height:1.2;}
.dark .copy-tip{background:#555;}
.copy-btn:hover .copy-tip{display:block;}

/* ── Badge ── */
.badge{display:inline-flex;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:500;}
.badge-draft{background:var(--badge-draft-bg);color:var(--badge-draft-color);}
.badge-approved{background:var(--badge-approved-bg);color:var(--badge-approved-color);}
.badge-ACTIVE{background:var(--badge-ACTIVE-bg);color:var(--badge-ACTIVE-color);}
.badge-INACTIVE{background:var(--badge-INACTIVE-bg);color:var(--badge-INACTIVE-color);}
.badge-DROP-OFF{background:var(--badge-DROP-OFF-bg);color:var(--badge-DROP-OFF-color);}
.badge-open{background:var(--badge-open-bg);color:var(--badge-open-color);}
.badge-completed{background:var(--badge-completed-bg);color:var(--badge-completed-color);}
.badge-aborted{background:var(--badge-aborted-bg);color:var(--badge-aborted-color);}
.badge-admin{background:var(--badge-approved-bg);color:var(--badge-approved-color);}
.badge-superadmin{background:var(--badge-open-bg);color:var(--badge-open-color);}
.badge-yellow{background:#FEF3C7;color:#92400E;}
.badge-blue{background:#DBEAFE;color:#1E40AF;}
.badge-green{background:#D1FAE5;color:#065F46;}
.badge-red{background:#FEE2E2;color:#991B1B;}
.badge-gray{background:#F3F4F6;color:#374151;}
.badge-purple{background:#EDE9FE;color:#5B21B6;}
.badge-active{background:#D1FAE5;color:#065F46;}
.badge-inactive{background:#F3F4F6;color:#374151;}
.badge-outline{background:transparent;border:1px solid var(--border,#d1d5db);color:#6b7280;}

/* ── Course cards ── */
.course-card{background:var(--card-bg,#fff);border:1px solid #222;border-radius:10px;margin-bottom:16px;box-shadow:0 2px 8px rgba(0,0,0,.06);}
.course-card-header{display:flex;align-items:center;gap:10px;padding:12px 16px;cursor:pointer;user-select:none;background:var(--bg-secondary,#f8f9fa);border-bottom:1px solid var(--border);border-radius:9px 9px 0 0;overflow-x:auto;overflow-y:hidden;}
.course-card-header:hover{background:var(--nav-hover,#f0f1f3);}
.course-card.collapsed .course-card-header{border-bottom:none;border-radius:9px;}
.course-card-toggle{font-size:10px;color:var(--text-muted);width:14px;text-align:center;transition:transform .15s;}
.course-card-title{font-weight:700;font-size:14px;color:var(--text);}
.course-card-count{font-size:12px;color:var(--text-muted);}
.course-card-header .course-card-title,.course-card-header .course-card-date,.course-card-header .course-card-count,.course-card-header .course-card-chips{padding-right:10px;border-right:1px solid rgba(0,0,0,.15);}
.course-card-chips{display:flex;gap:4px;flex-wrap:wrap;align-items:center;}
.course-card-body{overflow-x:auto;}
.course-card-body .data-table{margin:0;font-size:12px;}
.course-card-body .data-table th,.course-card-body .data-table td{padding:5px 8px;white-space:nowrap;position:relative;}
.course-card-body .data-table th:not(:last-child)::after,.course-card-body .data-table td:not(:last-child)::after{content:'';position:absolute;right:0;top:20%;height:60%;width:1px;background:var(--table-border);}
td.editable-name{cursor:text;}
td.editable-name:hover{background:rgba(0,0,0,.04);border-radius:4px;}
.course-card-import-sep{width:1px;height:18px;background:rgba(0,0,0,.15);margin:0 6px;}
.cc-footer{border-top:1px solid var(--border);border-radius:0 0 9px 9px;overflow:hidden;}
.cc-tab-bar{display:flex;gap:0;background:var(--bg-secondary,#f8f9fa);}
.cc-tab{flex:1;padding:8px 16px;border:none;background:none;cursor:pointer;font-size:12px;font-weight:600;color:var(--text-muted);border-right:1px solid var(--border);display:flex;align-items:center;justify-content:center;gap:6px;}
.cc-tab:last-child{border-right:none;}
.cc-tab:hover{background:var(--nav-hover,#f0f1f3);}
.cc-tab.active{color:var(--primary);background:var(--card-bg,#fff);}
.cc-tab-content{padding:12px 16px;max-height:320px;overflow-y:auto;}
.cc-tab-content .data-table{font-size:12px;}
.cc-tab-content .data-table th,.cc-tab-content .data-table td{padding:5px 8px;}
.cc-tab-content .msg-task-row{padding:10px 12px 12px;border-bottom:1px solid var(--border);}
.cc-tab-content .msg-task-head{display:flex;justify-content:space-between;align-items:center;cursor:pointer;}
.cc-tab-content .msg-thread{padding:8px 4px 4px 12px;}
.crew-import-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:1000;display:flex;align-items:center;justify-content:center;}
.crew-import-modal{background:var(--bg-card,#fff);border-radius:12px;width:90%;max-width:800px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 8px 30px rgba(0,0,0,.2);}
.crew-import-modal-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.crew-import-modal-header h3{margin:0;font-size:16px;}
.crew-import-modal-body{padding:20px;overflow-y:auto;flex:1;}
.crew-import-drop{border:2px dashed var(--border);border-radius:8px;padding:40px;text-align:center;color:var(--text-muted);cursor:pointer;transition:border-color .15s,background .15s;}
.crew-import-drop.dragover{border-color:var(--primary);background:rgba(0,91,187,.05);}
.crew-import-drop input{display:none;}
.crew-match-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:12px;}
.crew-match-table th,.crew-match-table td{padding:6px 8px;text-align:left;border-bottom:1px solid var(--border);}
.crew-match-table th{font-weight:600;font-size:11px;text-transform:uppercase;color:var(--text-muted);}
.match-100{background:#dcfce7;}.match-66{background:#fef9c3;}.match-33{background:#fee2e2;}.match-0{background:#f3f4f6;}
.match-pill{display:inline-block;padding:1px 8px;border-radius:10px;font-size:10px;font-weight:600;}
.match-pill-100{background:#16a34a;color:#fff;}.match-pill-66{background:#ca8a04;color:#fff;}.match-pill-33{background:#dc2626;color:#fff;}.match-pill-0{background:#9ca3af;color:#fff;}
.batch-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px;padding:16px;border:1px solid var(--border);border-radius:8px;background:var(--bg-offset,#f9fafb);}
.batch-form-field{display:flex;flex-direction:column;gap:4px;}
.batch-form-label{font-size:12px;font-weight:600;color:var(--text-muted);}
.batch-form-grid .form-input{width:100%;box-sizing:border-box;}
.batch-form-warnings{background:#fef3c7;border:1px solid #f59e0b;border-radius:6px;padding:10px;margin-bottom:12px;font-size:12px;}
.batch-form-warnings ul{margin:4px 0 0 16px;padding:0;}

/* ── Tables ── */
.data-table{width:100%;border-collapse:collapse;font-size:13px;}
.data-table .col-fit{width:1%;white-space:nowrap;}
.data-table th{text-align:left;padding:8px 12px;background:var(--table-header);border-bottom:2px solid var(--table-border);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);position:sticky;top:0;z-index:2;}
.data-table td{padding:8px 12px;border-bottom:1px solid var(--table-border);}
.data-table tr:hover td{background:var(--table-hover);}
.data-table tr.clickable{cursor:pointer;}
.data-table tr.selected td{background:var(--table-sel);}
.data-table .cb-cell{width:32px;text-align:center;}
.data-table input[type="checkbox"]{cursor:pointer;width:15px;height:15px;accent-color:var(--primary);}

/* ── Column sort/filter ── */
.col-sortable{position:relative;white-space:nowrap;user-select:none;}
.col-header-label{cursor:pointer;}
.col-header-label:hover{color:var(--primary);}
.col-filter-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:10px;padding:0 2px;margin-left:2px;vertical-align:middle;line-height:1;}
.col-filter-btn:hover,.col-filter-btn.col-filter-active{color:var(--primary);}
.col-filter-active{color:var(--primary);font-weight:700;}
th.col-filtered{border-bottom:2px solid var(--primary);background:rgba(46,116,181,.12) !important;}
th.col-filtered .col-header-label{color:var(--primary);}
.col-filter-dropdown{display:none;position:absolute;top:100%;left:0;z-index:1000;background:var(--shell);border:1px solid var(--divider);border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.15);padding:6px;min-width:180px;text-transform:none;letter-spacing:0;font-weight:400;}
.col-filter-dropdown.open{display:block;}
.col-filter-sort{display:block;width:100%;text-align:left;background:none;border:none;padding:6px 8px;font-size:12px;cursor:pointer;border-radius:4px;color:var(--text);}
.col-filter-sort:hover{background:var(--nav-hover);}
.col-filter-sep{border-top:1px solid var(--divider);margin:4px 0;}
.col-filter-input{width:100%;margin:4px 0;font-size:12px;padding:5px 8px;}
.col-filter-actions{display:flex;gap:4px;justify-content:flex-end;margin-top:4px;}
.col-filter-option{display:block;width:100%;text-align:left;background:none;border:none;padding:6px 8px;font-size:12px;cursor:pointer;border-radius:4px;color:var(--text);}
.col-filter-option:hover{background:var(--nav-hover);}
.col-filter-option-active{background:var(--primary);color:#fff;}
.col-filter-option-active:hover{background:var(--primary);}
.col-filter-wide{min-width:220px;}
.col-filter-textarea{width:100%;margin:4px 0;font-size:12px;padding:5px 8px;resize:none;height:120px;overflow-y:auto;font-family:inherit;}

/* ── Stats ── */
/* --dash-cols (2/3/4) is the per-user grid width, set inline from the
   dashCols account preference; max-width keeps every card ~244px wide so
   2 cols still measures the classic 500px. */
.stats-grid{display:grid;grid-template-columns:repeat(var(--dash-cols,2),1fr);gap:12px;margin-bottom:20px;max-width:calc(var(--dash-cols,2)*256px - 12px);}
@media (max-width:1100px){.stats-grid{grid-template-columns:repeat(2,1fr);max-width:500px;}}
.stat-card{background:var(--stat-bg);border:1px solid var(--stat-border);border-radius:8px;padding:14px 16px;}
.stat-value{font-size:24px;font-weight:700;}
.stat-label{font-size:11px;color:var(--text-muted);margin-top:2px;}

/* separates batch creation from the people-imports in the Crew topbar */
.topbar-import-divider{width:1px;align-self:stretch;background:var(--divider);margin:0 6px;}

/* ── Bulk batch Excel import: the "what the file must contain" table ── */
.excel-cols-table{width:100%;border-collapse:collapse;font-size:13px;line-height:1.5;}
.excel-cols-table td{padding:3px 10px 3px 0;border-bottom:1px solid var(--divider);vertical-align:top;}
.excel-cols-table tr:last-child td{border-bottom:none;}
.excel-cols-table td:first-child{white-space:nowrap;font-weight:600;}
.excel-cols-table td:first-child span{color:var(--text-faint);font-weight:400;margin-right:7px;}
.excel-cols-table td:last-child{color:var(--text-muted);line-height:1.8;}
/* allowed values render as small chips flowing horizontally — a chip never
   breaks mid-value ("Malta Air" stays whole), lines wrap between chips */
.excel-cols-table code{background:var(--nav-hover);border:1px solid var(--divider);border-radius:4px;padding:0 5px;white-space:nowrap;}
/* every allowed contract label as chips, scrolling inside the cell */
.excel-contract-list{max-height:110px;overflow-y:auto;margin-top:2px;padding-right:6px;line-height:1.9;}

/* file preview: compact enough that all 10 columns FIT the (widened) modal —
   short values never wrap, only name/email/contract may, so there is no
   left-right scrolling to do */
.excel-preview-table{width:100%;border-collapse:collapse;font-size:11.5px;}
.excel-preview-table th,.excel-preview-table td{padding:4px 8px;border-bottom:1px solid var(--divider);text-align:left;vertical-align:top;white-space:nowrap;}
.excel-preview-table th{position:sticky;top:0;background:var(--shell);font-size:10px;text-transform:uppercase;letter-spacing:.3px;color:var(--text-muted);}
.excel-preview-table td.wrap{white-space:normal;word-break:break-word;min-width:110px;}
.excel-preview-table tr:last-child td{border-bottom:none;}

/* editable check grid: green = valid+locked, amber = valid behind its tick,
   red = broken with the guilty cells editable */
.bx-gridwrap{max-height:320px;overflow:auto;border:1px solid var(--divider);border-radius:6px;}
/* Expand toggle: near-fullscreen modal, grid takes the freed height
   (!important because the modals carry inline max-widths) */
.modal.modal-max{max-width:96vw !important;width:96vw;max-height:94vh;}
.modal.modal-max .bx-gridwrap{max-height:calc(94vh - 360px) !important;}
.bx-opt-bad{color:var(--danger);font-weight:700;}
.bx-grid td{vertical-align:middle;}
.bx-mark{font-size:11px;font-weight:700;}
.bx-mark-ok{color:var(--primary);}
.bx-mark-bad{color:var(--danger);}
.bx-mark-amber{color:#B45309;border:1px solid currentColor;border-radius:4px;padding:0 4px;font-size:9px;white-space:nowrap;}
.dark .bx-mark-amber,.dark .bx-reason-amber td{color:#FAC775;}
.bx-bad td{background:rgba(220,38,38,.06);}
.bx-reason td{color:var(--danger);font-size:11px;padding-top:0;white-space:normal;word-break:break-word;}
.bx-reason-amber td{color:#B45309;}
.bx-in{width:100%;min-width:56px;font-size:11px;padding:2px 4px;border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);border-radius:3px;font-family:inherit;}
.bx-in-bad{border-color:var(--danger);}

/* ── Report builder: column-order badge (1 = first column in the export).
   It's a real number input — type a position or arrow up/down to move the
   column; spinners hidden to keep it badge-sized. ── */
.rb-ord{flex:0 0 auto;width:30px;height:18px;padding:0 2px;text-align:center;font-size:11px;font-weight:700;border-radius:4px;border:1px solid var(--divider);background:var(--nav-hover);color:var(--text-muted);font-family:inherit;appearance:textfield;-moz-appearance:textfield;}
.rb-ord::-webkit-outer-spin-button,.rb-ord::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.rb-ord:focus{outline:2px solid var(--primary);outline-offset:-1px;color:var(--text);}

/* ── Forms ── */
.form-row{display:flex;gap:10px;align-items:center;margin-bottom:12px;flex-wrap:wrap;}
.form-input{padding:7px 12px;border-radius:6px;border:1px solid var(--input-border);background:var(--input-bg);color:var(--text);font-size:13px;font-family:inherit;}
.form-input:focus{outline:2px solid var(--primary);outline-offset:-1px;}
.form-input-sm{padding:4px 8px;font-size:12px;}
select.form-input{cursor:pointer;}

/* ── Crew container ── */
.crew-container{display:flex;flex-direction:column;flex:1 1 0;overflow:hidden;}
.crew-toolbar{padding:12px 20px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-bottom:1px solid var(--divider);flex-shrink:0;}
.crew-toolbar .form-input{margin:0;}
.crew-count{font-size:11px;color:var(--text-muted);margin-left:auto;white-space:nowrap;}
.crew-body{display:flex;flex:1 1 0;overflow:hidden;}
.crew-list-col{display:flex;flex-direction:column;flex:1 1 0;min-width:0;overflow:hidden;}
.crew-list-wrap{flex:1 1 0;overflow-y:auto;}

/* ── Crew detail panel (vertical / side) ── */
.crew-detail-pane{display:none;flex-direction:column;border-left:2px solid var(--divider);overflow-y:auto;width:40%;position:relative;flex-shrink:0;}
.crew-detail-pane.open{display:flex;}
.crew-detail-pane .resize-handle{width:6px;height:100%;cursor:ew-resize;background:transparent;flex-shrink:0;position:absolute;left:0;top:0;}
.crew-detail-pane .resize-handle::after{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:3px;height:40px;border-radius:2px;background:var(--divider);}
.crew-detail-pane .resize-handle:hover::after{background:var(--primary);}
.crew-detail-header{display:flex;align-items:center;padding:6px 16px;border-bottom:1px solid var(--divider);flex-shrink:0;gap:8px;flex-wrap:wrap;}
.crew-detail-title{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;}
.crew-detail-tabs{display:flex;gap:0;}
.crew-detail-tab{padding:5px 14px;border:1px solid var(--btn-border);font-size:12px;cursor:pointer;background:var(--btn-bg);color:var(--btn-color);transition:background .1s;}
.crew-detail-tab:first-child{border-radius:5px 0 0 5px;}
.crew-detail-tab:last-child{border-radius:0 5px 5px 0;}
.crew-detail-tab:not(:first-child){border-left:0;}
.crew-detail-tab.active{background:var(--primary);color:#fff;border-color:var(--primary);}
.tab-count{font-weight:700;background:rgba(0,0,0,.15);padding:1px 6px;border-radius:8px;font-size:11px;margin-left:2px;}
.crew-detail-tab.active .tab-count{background:rgba(255,255,255,.25);}
.crew-detail-close{margin-left:auto;}
.crew-detail-content{flex:1;overflow-y:auto;padding:12px 16px;}

/* ── Profile layout ── */
.profile-top{display:flex;gap:20px;align-items:flex-start;}
.profile-avatar{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;flex-shrink:0;}
.profile-fields{flex:1;min-width:0;}
.profile-section-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:6px;}
.profile-link{font-size:11px;color:var(--primary);cursor:pointer;text-decoration:underline;background:none;border:none;padding:0;}


/* ── Card history grid ── */
/* EBC Import — two filterable/sortable/infinite-scroll lists */
.ebc-card{background:var(--shell);border:1px solid var(--divider);border-radius:10px;margin-bottom:20px;overflow:hidden;}
.ebc-card-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--divider);}
.ebc-card-title{font-weight:600;font-size:14px;color:var(--text);}
.ebc-card-count{font-size:12px;color:var(--text-muted);}
.ebc-filter-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:10px 16px;border-bottom:1px solid var(--divider);}
.ebc-filter-input,.ebc-filter-select{font-size:12px;padding:5px 8px;border:1px solid var(--input-border);border-radius:6px;background:var(--input-bg);color:var(--text);min-width:150px;}
.ebc-filter-clear{font-size:12px;padding:5px 10px;border:1px solid var(--btn-border);border-radius:6px;background:var(--btn-bg);color:var(--btn-color);cursor:pointer;}
.ebc-list-scroll{max-height:400px;overflow:auto;}
.ebc-table{width:100%;border-collapse:collapse;font-size:12px;}
.ebc-table th,.ebc-table td{padding:7px 10px;text-align:left;border-bottom:1px solid var(--table-border);white-space:nowrap;}
.ebc-table thead th{position:sticky;top:0;background:var(--table-header);z-index:1;}
.ebc-table tbody tr:hover{background:var(--table-hover);}
.ebc-sortable{cursor:pointer;user-select:none;}
.ebc-sortable:hover{color:var(--primary);}
.ebc-arrow{font-size:9px;color:var(--text-muted);margin-left:2px;}
.ebc-loader{padding:10px;text-align:center;font-size:12px;color:var(--text-muted);}
.ebc-empty{padding:18px;text-align:center;color:var(--text-muted);font-size:13px;}
.card-history-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
.card-history-item{display:flex;flex-direction:column;gap:6px;}
.card-deactivated{opacity:0.7;}
.card-history-card-wrap{width:100%;overflow:hidden;}
.card-preview-mini{transform-origin:top left;margin:0;}
.card-history-info{font-size:11px;color:var(--text-muted);line-height:1.5;}
.card-history-info{display:flex;align-items:center;gap:4px;flex-wrap:wrap;}
.card-watermark{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-35deg);font-size:22px;font-weight:900;color:rgba(211,47,47,0.5);text-transform:uppercase;pointer-events:none;z-index:5;letter-spacing:3px;text-align:center;width:120%;line-height:1.15;text-wrap:balance;}
.deactivate-menu{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;padding:8px;background:var(--shell);border:1px solid var(--divider);border-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,.1);}
.deactivate-menu-title{width:100%;font-size:11px;font-weight:600;color:var(--text-muted);margin-bottom:2px;}
.per-diem-wrap .deactivate-menu,.note-all-wrap .deactivate-menu,.auto-approve-wrap .deactivate-menu{position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:4px;font-size:11px;white-space:nowrap;z-index:10;}

/* ── Card preview status (outside frame) ── */
.card-preview-status{margin-bottom:6px;display:flex;gap:6px;align-items:center;}

/* ── Detail grid ── */
.detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;}
.detail-item{background:var(--stat-bg);border:1px solid var(--stat-border);border-radius:6px;padding:10px 12px;}
.detail-item .label{font-size:10px;color:var(--text-tiny);text-transform:uppercase;letter-spacing:.04em;}
.detail-item .value{font-size:13px;margin-top:2px;word-break:break-word;overflow-wrap:break-word;}

/* ── Photo grid ── */
.photo-grid{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;}
.photo-thumb-wrap{display:flex;flex-direction:column;align-items:center;gap:3px;}
.photo-date{font-size:10px;color:var(--text-faint);}
.photo-thumb{width:80px;height:80px;border-radius:6px;object-fit:contain;border:2px solid var(--divider);background:var(--shell);}
.photo-delete-btn{font-size:10px;padding:1px 6px;color:var(--danger);border-color:var(--danger);line-height:1.2;}
.photo-delete-btn:hover{background:var(--danger);color:#fff;}
.photo-delete-center{align-self:center;}

/* ── Selection bar ── */
.selection-bar{display:none;align-items:center;gap:10px;padding:10px 20px;background:#003366;color:#fff;flex-shrink:0;margin:0 -1px -1px;}
.selection-bar.visible{display:flex;}
.selection-bar .sel-count{font-size:13px;font-weight:500;}
.selection-bar .btn{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.3);color:#fff;}
.selection-bar .btn:hover{background:rgba(255,255,255,.3);}
.selection-bar .btn.sel-primary{background:#fff;color:#003366;border-color:#fff;}

/* ── Modal ── */
.modal-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:100;align-items:center;justify-content:center;}
.modal-overlay.visible{display:flex;}
.modal{background:var(--shell);border-radius:10px;max-width:480px;width:90%;max-height:80vh;overflow-y:auto;padding:20px 24px;border:1px solid var(--divider);box-shadow:0 8px 32px rgba(0,0,0,.25);}
.modal-header{padding:20px 24px 0;}
.modal-body{padding:16px 24px;}
.modal-footer{padding:0 24px 20px;display:flex;justify-content:flex-end;gap:10px;}
.modal h2{font-size:16px;font-weight:600;margin-bottom:16px;}
.modal .form-row{flex-direction:column;align-items:stretch;}
.modal label{font-size:12px;color:var(--text-muted);margin-bottom:4px;}
.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;}
.vc-result-item:hover{background:var(--bg-alt);}
.vc-result-item:last-child{border-bottom:none;}

/* ── Pagination ── */
.pagination{display:flex;align-items:center;gap:8px;justify-content:center;padding:12px 0;}
.pagination .btn{padding:5px 10px;font-size:11px;}
.pagination .page-info{font-size:12px;color:var(--text-muted);}

/* ── Batch container ── */
.batch-container{display:flex;flex-direction:column;flex:1;overflow:hidden;}
.batch-list-wrap{flex:1;overflow-y:auto;}

/* ── Batch progress bar ── */
.batch-progress{display:flex;align-items:center;gap:10px;padding:0 20px 0 0;}
.batch-progress-track{flex:1;height:6px;background:var(--divider);border-radius:3px;min-width:80px;overflow:hidden;}
.batch-progress-fill{height:100%;background:var(--primary);border-radius:3px;transition:width .3s;}
.batch-progress-text{font-size:11px;color:var(--text-muted);white-space:nowrap;}

/* ── Batch review panel ── */
.batch-review-pane{display:none;flex-direction:column;border-top:2px solid var(--divider);min-height:0;overflow:hidden;}
.batch-review-pane.open{display:flex;}
.batch-review-header{display:flex;align-items:center;padding:6px 16px;border-bottom:1px solid var(--divider);flex-shrink:0;gap:8px;}
.batch-review-title{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;}
.batch-review-nav{display:flex;gap:4px;align-items:center;}
.batch-review-nav .btn{padding:4px 10px;font-size:11px;}
.batch-review-nav .nav-label{font-size:11px;color:var(--text-muted);min-width:50px;text-align:center;}
.batch-review-close{margin-left:8px;}
.batch-review-content{flex:1;overflow-y:auto;padding:16px;display:flex;gap:20px;flex-wrap:wrap;}

/* ── Card preview ── */
.card-preview-wrap{flex-shrink:0;}
.card-preview{width:340px;height:215px;border-radius:6px;border:1px solid var(--table-border);background-color:#e8e8e8;background-size:100% 100%;background-repeat:no-repeat;position:relative;overflow:hidden;font-size:11px;transform-origin:top left;box-shadow:0 4px 20px rgba(0,0,0,.2);}
.card-preview.tpl-lauda::before{content:'';position:absolute;left:26px;top:36px;width:117px;height:7px;background:#fff;}
.card-zoom-bar{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:11px;color:var(--text-muted);}
.card-zoom-bar input[type=range]{flex:1;max-width:120px;cursor:pointer;}
.card-preview-photo{position:absolute;left:29px;top:43px;width:114px;height:109px;background-color:#fff;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;cursor:grab;}
.card-preview-photo:active{cursor:grabbing;}
.card-preview-photo.dragging{outline:1.5px solid rgba(255,80,80,0.6);outline-offset:-1.5px;}
.card-preview-photo.dragging::before{content:'';position:absolute;left:50%;top:0;bottom:0;width:1px;background:rgba(255,80,80,0.6);z-index:10;pointer-events:none;}
.card-preview-photo.dragging::after{content:'';position:absolute;top:50%;left:0;right:0;height:1px;background:rgba(255,80,80,0.6);z-index:10;pointer-events:none;}
.card-preview-photo.empty{display:flex;align-items:center;justify-content:center;color:var(--text-faint);font-size:10px;background-color:rgba(200,200,200,0.6);}
.card-preview-photo.locked{cursor:default;}
.card-preview-fields{position:absolute;left:183px;top:38px;width:150px;}
.card-preview-field{margin-bottom:6px;line-height:1.15;}
.card-preview-field .f-label{font-weight:700;font-size:11px;color:#000;}
.card-preview-field .f-value{font-size:11px;font-weight:700;color:#000;}

/* ── Review side panel (right of card preview) ── */
.review-side{flex:1;min-width:200px;display:flex;flex-direction:column;gap:12px;}
.review-section h4{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;}
.review-photos{display:flex;gap:6px;flex-wrap:wrap;align-items:flex-start;}
.review-photos{display:flex;flex-wrap:wrap;gap:10px;}
.photo-pair{display:inline-flex;flex-wrap:wrap;gap:6px;padding:6px;border:1px solid var(--divider);border-radius:8px;background:var(--table-header);position:relative;}
.photo-pair .deactivate-menu{position:absolute;top:100%;left:0;margin-top:4px;font-size:11px;white-space:nowrap;z-index:10;}
.bulk-match-actions .deactivate-menu{position:absolute;top:100%;right:0;margin-top:4px;font-size:11px;white-space:nowrap;z-index:10;}
.review-photos .photo-thumb-wrap{cursor:pointer;min-width:60px;text-align:center;}
.review-photos .photo-thumb-wrap.locked{cursor:default;opacity:.5;pointer-events:none;}
.review-photos .photo-thumb{width:60px;height:60px;cursor:pointer;transition:border-color .1s;}
.review-photos .photo-thumb.active{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary);}
.photo-label{font-size:9px;color:var(--text-faint);display:block;text-align:center;margin-top:2px;}
.photo-label.nobg{color:var(--primary);}
.nobg-placeholder{display:flex;align-items:center;justify-content:center;width:60px;min-height:60px;}
.nobg-buttons{flex-direction:column;gap:4px;width:auto;padding:4px;}
.nobg-placeholder .btn{font-size:9px;padding:2px 6px;white-space:nowrap;}
.review-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;}
.review-actions .btn{font-size:12px;}
.offset-reset{font-size:11px;color:var(--primary);cursor:pointer;background:none;border:none;padding:2px 0;text-decoration:underline;}
.review-notes-list{max-height:140px;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:4px;max-width:360px;}
.review-note{padding:4px 6px;background:var(--bg-page);border-radius:4px;border:1px solid var(--divider);}
.review-note-text{font-size:12px;color:var(--text-main);word-break:break-word;overflow-wrap:break-word;}
.review-note-meta{font-size:10px;color:var(--text-faint);margin-top:2px;}

/* ── Batch setup ── */
.batch-apply-all{display:flex;flex-direction:column;gap:6px;padding:10px 16px;background:var(--nav-hover);border-bottom:1px solid var(--divider);flex-shrink:0;}
.apply-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.batch-apply-label{font-size:12px;font-weight:600;color:var(--text-muted);white-space:nowrap;}
.apply-group{display:flex;flex-direction:column;align-items:center;gap:4px;}
.apply-group .btn{font-size:10px;padding:2px 8px;white-space:nowrap;}
.apply-group .btn .spinner{width:12px;height:12px;border-width:2px;display:inline-block;vertical-align:middle;}
.apply-divider{width:2px;height:32px;background:var(--text-muted);flex-shrink:0;align-self:center;}
.ribbon-btn{background:var(--primary) !important;color:#fff !important;white-space:nowrap;font-weight:600;}
.ribbon-btn.danger-btn{background:var(--danger) !important;}
.approve-all-wrap{display:flex;flex-direction:column;align-items:center;gap:2px;}
.approve-all-hint{font-size:9px;color:var(--text-faint);white-space:nowrap;text-align:center;max-width:140px;line-height:1.2;}
.apply-group-wide{display:flex;align-items:center;gap:6px;}
.apply-group-wide .form-input{font-size:12px;padding:4px 6px;min-width:260px;resize:vertical;}
.apply-group-wide textarea.form-input{line-height:1.4;max-height:80px;overflow-y:auto;}
.apply-group-wide .btn{font-size:11px;padding:4px 10px;white-space:nowrap;}
.batch-apply-all .form-input{font-size:12px;padding:4px 6px;min-width:100px;}
.batch-edit-table .form-input{font-size:12px;padding:3px 4px;}
.batch-edit-table select.form-input{min-width:90px;}
.batch-edit-table input[type="text"].form-input{min-width:130px;}
.batch-edit-table input[type="date"].form-input{min-width:120px;}

/* ── Payments ── */
.payment-container{display:flex;flex:1;overflow:hidden;}
.payment-list-wrap{display:flex;flex-direction:column;flex:1;min-width:0;overflow-y:auto;}
.payment-review-pane{display:none;flex-direction:column;border-left:2px solid var(--divider);overflow-y:auto;width:40%;position:relative;flex-shrink:0;}
.payment-review-pane.open{display:flex;}
.payment-review-pane .resize-handle{width:6px;height:100%;cursor:ew-resize;background:transparent;flex-shrink:0;position:absolute;left:0;top:0;}
.payment-review-pane .resize-handle::after{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:3px;height:40px;border-radius:2px;background:var(--divider);}
.payment-review-pane .resize-handle:hover::after{background:var(--primary);}
.payment-review-header{display:flex;align-items:center;padding:6px 16px;border-bottom:1px solid var(--divider);flex-shrink:0;gap:8px;}
.payment-review-title{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;}
.payment-review-nav{display:flex;gap:4px;align-items:center;}
.payment-review-nav .btn{padding:4px 10px;font-size:11px;}
.payment-review-nav .nav-label{font-size:11px;color:var(--text-muted);min-width:50px;text-align:center;}
.payment-review-close{margin-left:8px;}
.payment-review-content{flex:1;overflow-y:auto;padding:16px;}
.payment-detail{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px;}
.payment-detail .detail-item{background:var(--stat-bg);border:1px solid var(--stat-border);border-radius:6px;padding:8px 10px;}
.payment-detail .label{font-size:10px;color:var(--text-tiny);text-transform:uppercase;letter-spacing:.04em;}
.payment-detail .value{font-size:13px;margin-top:2px;}
.crew-payment-card{display:flex;align-items:center;gap:12px;background:var(--stat-bg);border:1px solid var(--stat-border);border-radius:8px;padding:10px 14px;margin-bottom:6px;}
.crew-payment-amount{font-size:15px;font-weight:600;white-space:nowrap;}
.crew-payment-info{flex:1;min-width:0;}
.crew-payment-reason{font-size:12px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.crew-payment-meta{font-size:11px;color:var(--text-faint);margin-top:2px;}
.suggestion-card{border:1px solid var(--divider);border-radius:8px;padding:12px;margin-bottom:8px;cursor:pointer;transition:border-color .15s;}
.suggestion-card:hover{border-color:var(--primary);}
.suggestion-card.selected{border-color:var(--primary);background:var(--primary-light);}
.suggestion-match-type{font-size:10px;padding:2px 6px;border-radius:10px;font-weight:600;text-transform:uppercase;}
.match-code-name{background:#EAF3DE;color:#3B6D11;}
.match-code{background:#FAEEDA;color:#854F0B;}
.match-name{background:#E0EDFF;color:#1D4ED8;}
.payment-search-wrap{margin-top:12px;display:flex;gap:6px;}
.payment-search-wrap .form-input{flex:1;}

/* ── Utilities ── */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--primary);color:#fff;padding:10px 20px;border-radius:8px;font-size:13px;z-index:999;opacity:0;transition:opacity .3s;pointer-events:none;}
.toast.show{opacity:1;}
.spinner{width:32px;height:32px;margin:0 auto;border:3px solid var(--divider);border-top-color:var(--primary);border-radius:50%;animation:spin 0.8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.spinner-sm{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin 0.8s linear infinite;vertical-align:middle;}
.empty-state{text-align:center;padding:40px 20px;color:var(--text-faint);}
.empty-state-icon{font-size:32px;opacity:.4;margin-bottom:8px;}
.empty-state-text{font-size:13px;}
.loading-inline{text-align:center;padding:40px;color:var(--text-faint);}

.bulk-drop-zone{border:2px dashed var(--shell-border);border-radius:12px;padding:40px 20px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;}
.bulk-drop-zone:hover,.bulk-drop-zone.dragover{border-color:var(--brand);background:var(--nav-hover);}
.bulk-drop-icon{font-size:36px;opacity:.5;margin-bottom:8px;}
.bulk-drop-text{font-size:14px;font-weight:600;color:var(--text-muted);}
.bulk-drop-hint{font-size:11px;color:var(--text-faint);margin-top:4px;}
.bulk-match-card{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--shell-border);border-radius:8px;margin-bottom:6px;background:var(--shell);}
.bulk-match-thumb{width:64px;height:64px;border-radius:6px;object-fit:cover;}
.bulk-match-info{flex:1;font-size:12px;}
.bulk-match-name{font-weight:600;}
.bulk-match-code{color:var(--text-muted);}
.bulk-match-actions{display:flex;gap:4px;position:relative;}

.card-notes-section{margin-top:6px;padding-top:6px;border-top:1px solid var(--shell-border);overflow:hidden;}
.card-notes-list{max-height:150px;overflow-y:auto;font-size:11px;}
.card-note-item{padding:4px 0;border-bottom:1px solid var(--shell-border);}
.card-note-item:last-child{border-bottom:none;}
.card-note-text{color:var(--text-primary);word-break:break-word;overflow-wrap:break-word;}
.card-note-meta{color:var(--text-faint);font-size:10px;margin-top:1px;}

.text-faint{color:var(--text-faint);}
/* Bulk match */
.bm-card{border:2px solid var(--border);border-radius:8px;margin-bottom:16px;overflow:hidden;box-shadow:0 2px 6px rgba(0,0,0,.1);}
.bm-card-header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--bg-secondary);}
.bm-section-label{font-size:9px;font-weight:600;letter-spacing:.5px;color:var(--text-faint);text-transform:uppercase;margin-bottom:2px;}
.bm-section-divider{padding:4px 14px;background:var(--bg-secondary);border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.bm-candidate{display:flex;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s;}
.bm-candidate:last-child{border-bottom:none;border-radius:0 0 8px 8px;}
.bm-candidate:hover{background:rgba(0,123,255,.03);}
.bm-candidate.bm-selected{background:rgba(40,167,69,.08);border-left:3px solid var(--success);}
.bm-cand-left{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:48px;}
.bm-score-pill{font-weight:700;font-size:12px;padding:3px 8px;border-radius:10px;white-space:nowrap;border:2px solid;}
.bm-cand-body{flex:1;min-width:0;}
.bm-cand-row{overflow:hidden;text-overflow:ellipsis;}
.bm-cand-tags{display:flex;gap:4px;margin-top:4px;flex-wrap:wrap;}
.bm-tag{font-size:10px;padding:2px 6px;border-radius:3px;font-weight:500;}
.bm-tag-yes{background:rgba(40,167,69,.12);color:var(--success);}
.bm-tag-partial{background:rgba(255,193,7,.15);color:#856404;}
.bm-tag-no{background:var(--bg-secondary);color:var(--text-faint);}
.bm-toggle{margin-top:16px;padding:8px 0;font-size:15px;font-weight:600;color:var(--text-secondary);cursor:pointer;user-select:none;}
.bm-toggle:hover{color:var(--text-primary);}
.bm-unmatched-item{font-size:12px;padding:2px 0;}
.bm-unmatched-wrap{display:inline-block;border:1px solid var(--divider);border-radius:6px;overflow:hidden;}
.bm-unmatched-table{border-spacing:0;font-size:12px;}
.bm-unmatched-table th{text-align:left;padding:6px 12px;font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:2px solid var(--table-border);white-space:nowrap;}
.bm-unmatched-table td{padding:5px 12px;border-bottom:1px solid var(--table-border);white-space:nowrap;}
.bm-unmatched-table tr:last-child td{border-bottom:none;}
.bm-unmatched-table tr:hover td{background:var(--bg-secondary);}

/* ── Vetting profile detail ── */
.vp-section{margin-bottom:0;padding:20px;background:var(--shell);border-bottom:1px solid var(--divider);border-radius:0;}
.vp-section-title{font-size:14px;font-weight:700;margin-bottom:10px;color:var(--text);display:flex;align-items:center;gap:8px;}
.vp-count{font-size:11px;font-weight:600;background:var(--primary);color:#fff;border-radius:10px;padding:1px 8px;min-width:20px;text-align:center;}
.vp-empty{font-size:13px;color:var(--text-faint);font-style:italic;padding:14px 16px;background:var(--shell);border-radius:0;border:none;}
.vp-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 24px;background:var(--shell);border-radius:0;padding:14px 16px;border:none;}
.vp-field{padding:4px 0;}
.vp-field-label{font-size:11px;font-weight:600;color:var(--text-faint);text-transform:uppercase;letter-spacing:.4px;margin-bottom:2px;}
.vp-field-value{font-size:13px;color:var(--text);}
.vp-entry-card{background:var(--shell);border-radius:8px;padding:14px 16px;margin-bottom:8px;border:1px solid var(--divider);box-shadow:0 1px 3px rgba(0,0,0,.06);}
.vp-entry-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px;}
.vp-entry-name{font-size:13px;font-weight:600;color:var(--text);}
.vp-entry-at{font-weight:400;color:var(--text-faint);}
.vp-entry-details{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--text-muted);}
.vp-entry-tag{font-size:11px;background:var(--divider);border-radius:4px;padding:1px 6px;text-transform:capitalize;}
.vp-accordion-header{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:4px 0;}
.vp-accordion-header:hover{opacity:.85;}
.vp-accordion-body{margin-top:8px;border-top:1px solid var(--divider);padding-top:8px;}
.vp-accordion-section{margin-bottom:0;}
.vp-accordion-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;cursor:pointer;font-size:13px;color:var(--text-muted);border-bottom:1px solid var(--divider);}
.vp-accordion-row:hover{background:var(--bg-alt);}
.vp-accordion-row span:first-child{font-weight:500;color:var(--text);}
.acc-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:1.5px solid currentColor;border-radius:50%;font-size:13px;line-height:1;vertical-align:middle;}
.acc-icon-sm{width:14px;height:14px;font-size:10px;}
.vp-accordion-content .form-label{display:block;font-size:12px;font-weight:600;color:var(--text);margin-bottom:2px;}
.vp-accordion-content .form-input{min-width:320px;box-sizing:border-box;}
.vp-doc-group{margin-bottom:12px;}
.vp-doc-group-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--text-faint);margin-bottom:6px;}
.vp-doc-item{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--shell);border-radius:8px;margin-bottom:6px;border:1px solid var(--divider);box-shadow:0 1px 3px rgba(0,0,0,.06);}
.vp-doc-icon{font-size:18px;flex-shrink:0;}
.vp-doc-info{flex:1;min-width:0;}
.vp-doc-name{font-size:13px;font-weight:500;color:var(--text);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.vp-doc-type{font-size:11px;color:var(--text-faint);}

/* ── Admin timeline ── */
.atl-wrap{background:var(--bg-secondary);border-radius:8px;padding:16px;overflow:hidden;}
.atl-years{position:relative;height:32px;border-bottom:1px solid var(--divider);margin-bottom:8px;}
.atl-year{position:absolute;top:0;font-size:11px;font-weight:700;color:var(--text);}
.atl-month{position:absolute;top:16px;font-size:9px;color:var(--text-faint);}
.atl-body{margin-bottom:8px;}
.atl-row{margin-bottom:3px;}
.atl-track{position:relative;height:22px;background:var(--divider);border-radius:4px;overflow:hidden;}
.atl-bar{position:absolute;top:0;height:100%;border-radius:4px;display:flex;align-items:center;padding:0 6px;overflow:hidden;white-space:nowrap;min-width:2px;}
.atl-bar span{font-size:10px;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3);overflow:hidden;text-overflow:ellipsis;}
.atl-legend{display:flex;flex-wrap:wrap;gap:12px;padding-top:6px;border-top:1px solid var(--divider);}
.atl-legend-item{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-muted);text-transform:capitalize;}
.atl-swatch{width:10px;height:10px;border-radius:2px;flex-shrink:0;}

/* ── Vetting profile detail layout (VG-style) ── */
.vp-layout{display:flex;gap:0;min-height:calc(100vh - 100px);border:1px solid var(--divider);border-radius:6px;overflow:hidden;}
.vp-sidebar{width:260px;flex-shrink:0;border-right:1px solid var(--divider);padding:16px;overflow-y:auto;max-height:calc(100vh - 100px);position:sticky;top:0;background:var(--shell);}
.vp-main{flex:1;min-width:0;overflow-y:auto;max-height:calc(100vh - 100px);scroll-behavior:smooth;}
.vp-main-inner{padding:0;}
.vp-sticky-tabs{position:sticky;top:0;z-index:10;background:var(--shell);border-top:1px solid #bbb;border-bottom:1px solid var(--divider);padding:0 24px;display:flex;gap:0;overflow-x:auto;}
.vp-sticky-tabs button{padding:10px 16px;font-size:12px;border:none;border-right:1px solid var(--divider);background:none;cursor:pointer;color:var(--text-muted);white-space:nowrap;border-bottom:2px solid transparent;transition:all .15s;}
.vp-sticky-tabs button:last-child{}
.vp-sticky-tabs button:hover{color:var(--text);}
.vp-sticky-tabs button.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600;}
.vp-sb-name{font-size:15px;font-weight:700;color:var(--text);margin-bottom:4px;word-break:break-word;}
.vp-sb-progress{margin:8px 0 12px;}
.vp-sb-progress-bar{height:6px;background:var(--divider);border-radius:3px;overflow:hidden;margin-bottom:4px;}
.vp-sb-progress-fill{height:100%;border-radius:3px;transition:width .3s;}
.vp-sb-progress-label{font-size:11px;color:var(--text-muted);}
.vp-sb-section{margin-top:14px;border-top:1px solid var(--divider);padding-top:10px;}
.vp-sb-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-faint);margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;}
.vp-sb-section-title:hover{color:var(--text);}
.vp-sb-check{display:flex;align-items:flex-start;gap:6px;font-size:12px;color:var(--text-muted);margin-bottom:4px;line-height:1.4;}
.vp-sb-check .icon{flex-shrink:0;width:14px;text-align:center;}
.vp-sb-check .icon.done{color:#22C55E;}
.vp-sb-check .icon.pending{color:var(--text-faint);}
.vp-sb-task{font-size:12px;padding:6px 8px;margin-bottom:4px;border-radius:6px;background:var(--bg-secondary);border-left:3px solid var(--text-faint);}
.vp-sb-task.priority-high{border-left-color:#EF4444;}
.vp-sb-task.priority-medium{border-left-color:#F59E0B;}
.vp-sb-task .task-desc{color:var(--text);margin-bottom:2px;}
.vp-sb-task .task-actions{font-size:11px;color:var(--text-faint);display:flex;gap:8px;}
.vp-sb-task .task-actions a{color:var(--primary);cursor:pointer;text-decoration:none;}
.vp-sb-task .task-actions a:hover{text-decoration:underline;}
.vp-sb-tabs{display:flex;gap:2px;margin-bottom:8px;}
.vp-sb-tabs button{font-size:11px;padding:3px 8px;border-radius:4px;border:1px solid var(--divider);background:var(--shell);cursor:pointer;color:var(--text-muted);}
.vp-sb-tabs button.active{background:var(--primary);color:#fff;border-color:var(--primary);}
.vp-sb-msg{border:1px solid var(--divider);border-radius:8px;padding:8px;max-height:180px;overflow-y:auto;margin-bottom:8px;background:var(--shell);}
.vp-sb-msg-bubble{margin-bottom:6px;font-size:12px;line-height:1.4;}
.vp-sb-msg-bubble .meta{font-size:10px;color:var(--text-faint);margin-bottom:2px;}
.vp-sb-msg-bubble.admin{text-align:right;}
.vp-sb-msg-bubble .text{padding:6px 10px;border-radius:8px;display:inline-block;max-width:90%;text-align:left;word-break:break-word;}
.vp-sb-msg-bubble.cm .text{background:var(--bg-secondary);color:var(--text);}
.vp-sb-msg-bubble.admin .text{background:var(--primary);color:#fff;}
.vp-sb-keydate{display:flex;justify-content:space-between;font-size:12px;color:var(--text-muted);margin-bottom:3px;}
.vp-sb-keydate .label{color:var(--text-faint);}
.vp-banner{padding:12px 16px;border-radius:8px;margin-bottom:8px;font-size:13px;}
.vp-banner.warning{background:#FFF7ED;border:1px solid #FDBA74;color:#9A3412;}
.vp-banner.success{background:#F0FDF4;border:1px solid #86EFAC;color:#166534;}
.vp-banner h4{margin:0 0 4px;font-size:14px;}
.vp-scroll-section{padding-top:16px;}

/* ── Sortable table headers ── */
.sortable-table th.sortable{cursor:pointer;user-select:none;}
.sortable-table th.sortable:hover{color:var(--primary);}
.sortable-table .th-arrow{font-size:9px;color:var(--text-muted);margin-left:2px;}
.sortable-table thead .filter-row th{padding:4px 6px;border-bottom:1px solid var(--table-border);}
.settings-filter-input{width:100%;font-size:11px;font-weight:normal;padding:3px 6px;border:1px solid var(--input-border);border-radius:4px;background:var(--input-bg);color:var(--text);}
/* Grouped-section label inside modals (Contact / Address / Notes …) */
.modal-section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin:18px 0 10px;padding-bottom:5px;border-bottom:1px solid var(--divider);}

/* ── User management: internal / external cards ── */
.users-card{background:var(--bg);border:1px solid var(--divider);border-radius:10px;padding:14px 16px 6px;margin-bottom:18px;}
.users-card-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.users-card-head h3{margin:0;font-size:14px;font-weight:600;}
.users-count{font-size:11px;font-weight:600;padding:1px 8px;border-radius:10px;background:var(--stat-bg,#eef2f7);color:var(--text-muted);}
.users-card-hint{font-size:11px;color:var(--text-muted);}

/* ── Request Console Widget ── */
.fb-widget{position:fixed;bottom:24px;right:24px;z-index:9999;font-family:inherit;}
.fb-trigger{width:48px;height:48px;border-radius:50%;border:none;cursor:pointer;background:var(--primary);color:#fff;font-size:20px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(0,0,0,.25);transition:transform .15s;}
.fb-trigger:hover{transform:scale(1.08);}
.fb-trigger.has-panel{display:none;}
.fb-panel{width:380px;max-height:560px;background:var(--bg);border:1px solid var(--divider);border-radius:12px;box-shadow:0 8px 30px rgba(0,0,0,.18);display:flex;flex-direction:column;overflow:hidden;transition:opacity .12s;}
.fb-panel:hover{opacity:1 !important;}
.fb-titlebar{display:flex;align-items:center;gap:10px;padding:8px 10px 8px 14px;border-bottom:1px solid var(--divider);}
.fb-title{font-size:12px;font-weight:600;color:var(--text);flex:1;white-space:nowrap;}
.fb-opacity{width:88px;height:4px;cursor:pointer;accent-color:var(--primary);flex:none;}
.fb-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--divider);padding:0 12px;}
.fb-tabs{display:flex;gap:0;}
.fb-tab{padding:10px 14px;border:none;background:none;cursor:pointer;font-size:12px;font-weight:500;color:var(--text-muted);border-bottom:2px solid transparent;transition:color .15s,border-color .15s;}
.fb-tab:hover{color:var(--text);}
.fb-tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600;}
.fb-close{border:none;background:none;cursor:pointer;font-size:18px;color:var(--text-muted);padding:4px 8px;border-radius:4px;}
.fb-close:hover{background:var(--hover-bg,rgba(0,0,0,.05));color:var(--text);}
.fb-indicator{width:8px;height:8px;border-radius:50%;background:var(--primary);margin-left:2px;display:inline-block;vertical-align:middle;}
.fb-body{padding:14px;flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px;}
.fb-desc{font-size:12px;color:var(--text-muted);line-height:1.5;}
.fb-tools{display:flex;gap:8px;flex-wrap:wrap;}
.fb-tool-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--divider);border-radius:6px;background:var(--bg);color:var(--text);font-size:11px;cursor:pointer;transition:border-color .15s;}
.fb-tool-btn:hover{border-color:var(--primary);color:var(--primary);}
.fb-tool-btn.recording{border-color:#ef4444;color:#ef4444;animation:fb-pulse 1.2s infinite;}
@keyframes fb-pulse{0%,100%{opacity:1;}50%{opacity:.6;}}
.fb-snap-thumbs{display:flex;gap:6px;flex-wrap:wrap;}
.fb-snap-thumb{position:relative;width:56px;height:42px;border-radius:4px;overflow:hidden;border:1px solid var(--divider);}
.fb-snap-thumb img{width:100%;height:100%;object-fit:cover;}
.fb-snap-thumb .fb-snap-x{position:absolute;top:1px;right:1px;width:16px;height:16px;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;border:none;cursor:pointer;font-size:10px;line-height:16px;text-align:center;padding:0;}
.fb-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);}
.fb-textarea{width:100%;min-height:72px;max-height:140px;resize:vertical;border:1px solid var(--input-border);border-radius:6px;padding:8px 10px;font-size:13px;font-family:inherit;background:var(--input-bg);color:var(--text);line-height:1.5;box-sizing:border-box;}
.fb-textarea:focus{outline:none;border-color:var(--primary);}
.fb-textarea::placeholder{color:var(--text-muted);}
.fb-submit-btn{width:100%;padding:10px;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;color:#fff;transition:opacity .15s;}
.fb-submit-btn.green{background:var(--primary);}
.fb-submit-btn.blue{background:#3b82f6;}
.fb-submit-btn:disabled{opacity:.5;cursor:not-allowed;}
.fb-chat{display:flex;flex-direction:column;gap:8px;max-height:240px;overflow-y:auto;padding:4px 0;}
.fb-msg{max-width:88%;padding:8px 12px;border-radius:10px;font-size:12px;line-height:1.6;word-wrap:break-word;white-space:pre-wrap;}
.fb-msg.user{align-self:flex-end;background:var(--primary);color:#fff;border-bottom-right-radius:2px;}
.fb-msg.assistant{align-self:flex-start;background:var(--stat-bg,#f3f4f6);color:var(--text);border-bottom-left-radius:2px;}
.dark .fb-msg.assistant{background:var(--stat-bg,#1e293b);}
.fb-loading{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-muted);padding:6px 0;}
.fb-pulse{width:10px;height:10px;border-radius:50%;background:var(--primary);animation:fb-pulse 1.2s infinite;flex:none;}
.fb-hint{font-size:11px;color:#92400e;background:#fef3c7;border:1px solid #fde68a;border-radius:6px;padding:6px 8px;line-height:1.5;}
.dark .fb-hint{background:#3a2e12;border-color:#7c5e10;color:#fbbf24;}
.fb-loading .fb-dots span{animation:fb-dot 1.4s infinite;display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--text-muted);margin:0 1px;}
.fb-loading .fb-dots span:nth-child(2){animation-delay:.2s;}
.fb-loading .fb-dots span:nth-child(3){animation-delay:.4s;}
@keyframes fb-dot{0%,80%,100%{opacity:.3;}40%{opacity:1;}}
.fb-submit-row{display:flex;gap:8px;align-items:center;}
.fb-submit-row .fb-submit-btn{flex:1;}
.fb-mic-bars{display:inline-flex;align-items:flex-end;gap:2px;height:14px;vertical-align:middle;}
.fb-mic-bars span{width:3px;background:currentColor;border-radius:1px;animation:fb-bar 0.6s ease-in-out infinite alternate;}
.fb-mic-bars span:nth-child(1){height:6px;animation-delay:0s;}
.fb-mic-bars span:nth-child(2){height:10px;animation-delay:.15s;}
.fb-mic-bars span:nth-child(3){height:4px;animation-delay:.3s;}
@keyframes fb-bar{to{height:14px;}}

/* ── Feature Requests review page ── */
.fr-status{display:inline-block;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;}
.fr-status.new,.fr-status.processing{background:#fef3c7;color:#92400e;}
.fr-status.processing{animation:fb-pulse 1.5s infinite;}
.fr-status.draft{background:var(--badge-grey-bg,#e5e7eb);color:var(--badge-grey-color,#374151);}
.fr-status.ready{background:#dbeafe;color:#1e40af;}
.fr-status.accepted{background:#dcfce7;color:#166534;}
.fr-status.rejected{background:#fee2e2;color:#991b1b;}
.fr-status.done{background:var(--badge-grey-bg,#e5e7eb);color:var(--badge-grey-color,#6b7280);}
.fr-detail-back{cursor:pointer;color:var(--primary);font-size:12px;border:none;background:none;padding:0;margin-bottom:12px;}
.fr-detail-back:hover{text-decoration:underline;}
.fr-summary-card{background:var(--stat-bg,#f8fafc);border:1px solid var(--divider);border-radius:8px;padding:14px;margin:12px 0;font-size:13px;line-height:1.6;white-space:pre-wrap;}
.fr-transcript{display:flex;flex-direction:column;gap:8px;margin:12px 0;}
.fr-transcript .fb-msg{max-width:80%;}
.fr-snaps-gallery{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0;}
.fr-snaps-gallery img{width:120px;height:80px;object-fit:cover;border-radius:6px;border:1px solid var(--divider);cursor:pointer;transition:transform .15s;}
.fr-snaps-gallery img:hover{transform:scale(1.05);}
.fr-actions{display:flex;gap:8px;margin:12px 0;}
.fr-notes-area{width:100%;min-height:60px;resize:vertical;border:1px solid var(--input-border);border-radius:6px;padding:8px;font-size:12px;font-family:inherit;background:var(--input-bg);color:var(--text);box-sizing:border-box;}
.fr-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.82);display:flex;align-items:center;justify-content:center;z-index:10000;cursor:zoom-out;}
.fr-lightbox img{max-width:92vw;max-height:92vh;border-radius:8px;box-shadow:0 10px 40px rgba(0,0,0,.5);background:#fff;}

/* ── User management access chips ── */
.uchip-row{display:flex;flex-wrap:wrap;gap:4px;}
.uchip{display:inline-block;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:600;cursor:pointer;user-select:none;border:1px solid var(--divider,#ddd);color:var(--text-secondary,#667);background:transparent;transition:all .15s;}
.uchip:hover{border-color:var(--primary,#003366);color:var(--primary,#003366);}
.uchip.on{background:var(--primary,#003366);border-color:var(--primary,#003366);color:#fff;}
