@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap');

/* ══════════════════════════════════════════
   INVENTRACK — LIGHT VIOLET PROFESSIONAL THEME
   ══════════════════════════════════════════ */
:root {
  --brand:        #7c3aed;
  --brand-light:  #8b5cf6;
  --brand-dark:   #5b21b6;
  --brand-pale:   #f5f3ff;
  --brand-mid:    #ede9fe;
  --accent:       #c026d3;
  --accent-pale:  #fdf4ff;

  --danger:       #ef4444;
  --danger-pale:  #fef2f2;
  --warning:      #f59e0b;
  --warning-pale: #fffbeb;
  --success:      #10b981;
  --success-pale: #ecfdf5;
  --info:         #3b82f6;
  --info-pale:    #eff6ff;

  --gray-50:  #fafafa;
  --gray-100: #f4f4f5;
  --gray-200: #e4e4e7;
  --gray-300: #d4d4d8;
  --gray-400: #a1a1aa;
  --gray-500: #71717a;
  --gray-600: #52525b;
  --gray-700: #3f3f46;
  --gray-800: #27272a;
  --gray-900: #18181b;

  --sidebar-w:  192px;
  --header-h:   64px;
  --radius:     10px;
  --radius-lg:  16px;
  --shadow:     0 1px 3px rgba(124,58,237,.06), 0 1px 2px rgba(0,0,0,.04);
  --shadow-md:  0 4px 16px rgba(124,58,237,.1);
  --shadow-lg:  0 8px 32px rgba(124,58,237,.15);
  --font:       'Plus Jakarta Sans', sans-serif;
  --mono:       'JetBrains Mono', monospace;
  --transition: .2s ease;
}

*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { font-size:15px; scroll-behavior:smooth; }
body { font-family:var(--font); background:var(--gray-50); color:var(--gray-800); line-height:1.6; min-height:100vh; }

/* ═══════════════════════════════════════
   FORMS
   ═══════════════════════════════════════ */
.form-group  { margin-bottom:1rem; }
.form-label  { display:block; font-size:.82rem; font-weight:600; color:var(--gray-600); margin-bottom:.4rem; }
.form-control,.form-select {
  width:100%; padding:.6rem 1rem; border:1.5px solid var(--gray-200); border-radius:var(--radius);
  font-size:.92rem; font-family:var(--font); background:#fff; color:var(--gray-800);
  transition:border-color var(--transition),box-shadow var(--transition);
}
.form-control:focus,.form-select:focus { outline:none; border-color:var(--brand); box-shadow:0 0 0 3px rgba(124,58,237,.15); }
.form-control[readonly],.form-control:read-only { background:var(--gray-50); color:var(--gray-500); }
.form-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:1rem; }

/* ═══════════════════════════════════════
   BUTTONS
   ═══════════════════════════════════════ */
.btn { display:inline-flex; align-items:center; gap:.4rem; padding:.55rem 1.1rem; border-radius:var(--radius); font-size:.88rem; font-weight:600; font-family:var(--font); cursor:pointer; border:1.5px solid transparent; transition:all var(--transition); text-decoration:none; white-space:nowrap; }
.btn:hover { text-decoration:none; }
.btn-primary  { background:var(--brand); color:#fff; border-color:var(--brand); }
.btn-primary:hover { background:var(--brand-dark); border-color:var(--brand-dark); transform:translateY(-1px); box-shadow:var(--shadow-md); }
.btn-secondary{ background:var(--gray-100); color:var(--gray-700); border-color:var(--gray-200); }
.btn-secondary:hover { background:var(--gray-200); }
.btn-outline  { background:transparent; color:var(--gray-700); border-color:var(--gray-300); }
.btn-outline:hover { border-color:var(--brand); color:var(--brand); background:var(--brand-pale); }
.btn-success  { background:var(--success); color:#fff; border-color:var(--success); }
.btn-success:hover  { filter:brightness(1.1); }
.btn-danger   { background:var(--danger); color:#fff; border-color:var(--danger); }
.btn-danger:hover   { filter:brightness(1.1); }
.btn-warning  { background:var(--warning); color:#fff; border-color:var(--warning); }
.btn-warning:hover  { filter:brightness(1.1); }
.btn-sm { padding:.35rem .75rem; font-size:.8rem; }
.btn-lg { padding:.75rem 1.5rem; font-size:1rem; }

/* ═══════════════════════════════════════
   ALERTS
   ═══════════════════════════════════════ */
.alert { padding:.85rem 1.1rem; border-radius:var(--radius); margin-bottom:1rem; font-size:.9rem; }
.alert-success { background:var(--success-pale); color:#065f46; border-left:3px solid var(--success); }
.alert-danger  { background:var(--danger-pale);  color:#991b1b; border-left:3px solid var(--danger);  }
.alert-warning { background:var(--warning-pale); color:#78350f; border-left:3px solid var(--warning); }
.alert-info    { background:var(--brand-pale);   color:var(--brand-dark); border-left:3px solid var(--brand); }

/* ═══════════════════════════════════════
   SIDEBAR
   ═══════════════════════════════════════ */
.sidebar {
  position:fixed; left:0; top:0; bottom:0; width:var(--sidebar-w);
  background: linear-gradient(160deg, #5b21b6 0%, #6d28d9 45%, #7c3aed 100%);
  border-right: 1px solid rgba(0,0,0,.08);
  z-index:200; display:flex; flex-direction:column;
  box-shadow: 3px 0 20px rgba(45,12,90,.25);
  height:100vh; overflow:visible;
  transition: width .22s ease;
}

/* ── Collapsible sidebar ── */
.sidebar-toggle-btn {
  position:absolute; top:18px; right:-13px; z-index:201;
  width:26px; height:26px; border-radius:50%;
  background:#fff; color:#5b21b6; border:1px solid rgba(0,0,0,.08);
  box-shadow:0 2px 6px rgba(0,0,0,.18);
  display:flex; align-items:center; justify-content:center;
  font-size:.95rem; font-weight:700; line-height:1; cursor:pointer; padding:0;
  transition: background var(--transition), color var(--transition);
}
.sidebar-toggle-btn:hover { background:#f5f3ff; }

body.sb-collapsed { --sidebar-w: 76px; }

.sidebar.sb-collapsed .sidebar-logo-text,
.sidebar.sb-collapsed .sidebar-loc,
.sidebar.sb-collapsed .sidebar-extra,
.sidebar.sb-collapsed .nav-section,
.sidebar.sb-collapsed .nav-item span:not(.icon),
.sidebar.sb-collapsed .user-info {
  display:none !important;
}
.sidebar.sb-collapsed .nav-group-items {
  max-height:none !important; opacity:1 !important; pointer-events:auto !important;
}
.sidebar.sb-collapsed .nav-item {
  justify-content:center; padding:.62rem 0; margin:2px .5rem;
}
.sidebar.sb-collapsed .nav-item .icon { width:auto; font-size:1.2rem; }
.sidebar.sb-collapsed .nav-item.active::before { left:0; }
.sidebar.sb-collapsed .sidebar-logo > div:nth-child(2) { display:none; }
.sidebar.sb-collapsed .sidebar-logo > div:first-child { flex:1 1 100%; border-right:none; }
.sidebar.sb-collapsed .sidebar-footer { padding:.85rem .25rem; }
.sidebar.sb-collapsed .sidebar-user { justify-content:center; }

.sidebar-brand { padding:.35rem .75rem .45rem; border-bottom:1px solid rgba(255,255,255,.18); flex-shrink:0; }
.sidebar-logo  { display:flex; align-items:flex-start; }
.sidebar-logo img { width:100%; height:100px; object-fit:fill; object-position:left center; display:block; }
.sidebar-logo-text { font-size:1.5rem; font-weight:800; color:#fff; }
.sidebar-loc { font-size:.72rem; color:rgba(255,255,255,.75); margin-top:5px; }

.sidebar-nav { flex:1; padding:.5rem 0; overflow-y:auto; overflow-x:hidden; min-height:0; }
.sidebar-nav::-webkit-scrollbar { width:3px; }
.sidebar-nav::-webkit-scrollbar-thumb { background:rgba(255,255,255,.2); border-radius:4px; }
.sidebar-footer { flex-shrink:0; }

/* Collapsible nav groups */
.nav-group {}
.nav-section {
  display:flex; align-items:center; justify-content:space-between;
  padding:.5rem 1.2rem .25rem;
  font-size:.62rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em;
  color:rgba(255,255,255,.6); cursor:pointer; user-select:none; transition:color var(--transition);
}
.nav-section:hover { color:rgba(255,255,255,.95); }
.nav-section .nav-arrow { font-size:.65rem; color:rgba(255,255,255,.45); transition:transform .22s ease; display:inline-block; }
.nav-group.collapsed .nav-section .nav-arrow { transform:rotate(-90deg); }
.nav-group-items { overflow:hidden; max-height:600px; transition:max-height .28s ease,opacity .22s ease; opacity:1; }
.nav-group.collapsed .nav-group-items { max-height:0; opacity:0; pointer-events:none; }

.nav-item { display:flex; align-items:center; gap:.6rem; padding:.48rem 1.1rem; color:rgba(255,255,255,.82); text-decoration:none; font-size:.86rem; font-weight:500; position:relative; transition:all .18s ease; margin:1px .5rem; border-radius:8px; }
.nav-item:hover { color:#fff; background:rgba(255,255,255,.12); text-decoration:none; }
.nav-item.active { color:#fff; background:rgba(255,255,255,.18); font-weight:700; }
.nav-item.active::before { content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background:#fff; border-radius:3px; }
.nav-item .icon { font-size:1rem; width:20px; text-align:center; flex-shrink:0; }
.nav-badge { background:#fff; color:#5b21b6; border-radius:10px; padding:.05rem .45rem; font-size:.68rem; font-weight:800; margin-left:auto; }

.sidebar-footer { padding:.85rem 1rem; border-top:1px solid rgba(255,255,255,.15); background:rgba(0,0,0,.1); }
.sidebar-user { display:flex; align-items:center; gap:.6rem; }
.user-avatar  { width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.15); display:grid; place-items:center; color:#fff; font-weight:700; font-size:.82rem; flex-shrink:0; border:1.5px solid rgba(255,255,255,.3); }
.user-info .name { font-size:.83rem; font-weight:600; color:#fff; white-space:normal; overflow-wrap:break-word; line-height:1.2; }
.user-info .role { font-size:.7rem; color:rgba(255,255,255,.7); }
.user-info { flex:1; min-width:0; }
.btn-logout { background:none; border:none; color:rgba(255,255,255,.55); cursor:pointer; font-size:1.1rem; padding:.25rem; transition:color var(--transition); flex-shrink:0; }
.btn-logout:hover { color:#fecaca; }

/* ═══════════════════════════════════════
   MAIN LAYOUT
   ═══════════════════════════════════════ */
.main-wrapper { margin-left:var(--sidebar-w); min-height:100vh; display:flex; flex-direction:column; transition: margin-left .22s ease; }
.topbar {
  position:sticky; top:0; z-index:100; height:var(--header-h);
  background:linear-gradient(135deg,#5b21b6,#7c3aed);
  border-bottom:none;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 1.75rem; gap:1rem;
  box-shadow:0 2px 12px rgba(91,33,182,.25);
}
.topbar-title  { font-size:1.05rem; font-weight:700; color:#fff; }
.topbar-actions{ display:flex; align-items:center; gap:.75rem; }

/* Topbar buttons override — make outline buttons visible on violet */
.topbar .btn-outline { background:rgba(255,255,255,.12); color:#fff; border-color:rgba(255,255,255,.3); }
.topbar .btn-outline:hover { background:rgba(255,255,255,.22); border-color:rgba(255,255,255,.5); color:#fff; }
.topbar .btn-primary { background:rgba(255,255,255,.2); border-color:rgba(255,255,255,.4); color:#fff; }
.topbar .btn-primary:hover { background:rgba(255,255,255,.3); }
.topbar .notif-btn { color:#fff; }

.page-content  { padding:1.75rem; flex:1; }

/* ═══════════════════════════════════════
   PAGE HEADER
   ═══════════════════════════════════════ */
.page-header { margin-bottom:1.75rem; }
.breadcrumb  { font-size:.78rem; color:var(--gray-400); margin-bottom:.4rem; }
.breadcrumb a { color:var(--brand); text-decoration:none; }
.breadcrumb a:hover { text-decoration:underline; }
.page-header h1 { font-size:1.6rem; font-weight:800; color:var(--gray-900); margin-bottom:.2rem; }
.page-header p  { color:var(--gray-500); font-size:.9rem; }

/* ═══════════════════════════════════════
   CARDS
   ═══════════════════════════════════════ */
.card        { background:#fff; border-radius:var(--radius-lg); border:1px solid var(--gray-200); box-shadow:var(--shadow); margin-bottom:1.25rem; overflow:visible; }
.card-header { padding:1rem 1.5rem; border-bottom:1px solid var(--gray-100); display:flex; align-items:center; justify-content:space-between; }
.card-title  { font-size:.95rem; font-weight:700; color:var(--gray-800); }
.card-body   { padding:1.5rem; }
.mb-2 { margin-bottom:1rem; }
.mt-1 { margin-top:.5rem; }
.mt-2 { margin-top:1rem; }

/* ═══════════════════════════════════════
   STAT CARDS
   ═══════════════════════════════════════ */
.stat-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(175px,1fr)); gap:1rem; margin-bottom:1.5rem; }
.stat-card  { background:#fff; border-radius:var(--radius-lg); border:1px solid var(--gray-200); padding:1.25rem; display:flex; align-items:center; gap:1rem; box-shadow:var(--shadow); transition:box-shadow var(--transition),transform var(--transition); }
.stat-card:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); }
.stat-icon  { width:46px; height:46px; border-radius:12px; display:grid; place-items:center; font-size:1.3rem; flex-shrink:0; }
.stat-icon.green,.stat-icon.purple { background:var(--brand-pale); color:var(--brand); }
.stat-icon.orange { background:var(--warning-pale); color:var(--warning); }
.stat-icon.red    { background:var(--danger-pale);  color:var(--danger);  }
.stat-icon.blue   { background:var(--info-pale);    color:var(--info);    }
.stat-icon.teal   { background:var(--success-pale); color:var(--success); }
.stat-number { font-size:1.65rem; font-weight:800; color:var(--gray-900); line-height:1; }
.stat-label  { font-size:.75rem; color:var(--gray-500); font-weight:500; margin-top:.2rem; }
.stat-sub    { font-size:.7rem; color:var(--gray-400); }

/* ═══════════════════════════════════════
   BADGES
   ═══════════════════════════════════════ */
.badge         { display:inline-flex; align-items:center; padding:.18rem .6rem; border-radius:20px; font-size:.72rem; font-weight:700; white-space:nowrap; }
.badge-brand   { background:var(--brand-pale);   color:var(--brand); }
.badge-secondary{ background:var(--gray-100);    color:var(--gray-600); }
.badge-success { background:var(--success-pale); color:#065f46; }
.badge-danger  { background:var(--danger-pale);  color:#991b1b; }
.badge-warning { background:var(--warning-pale); color:#78350f; }
.badge-info    { background:var(--info-pale);    color:#1e40af; }
.badge-purple  { background:var(--brand-mid);    color:var(--brand-dark); }
.text-xs  { font-size:.75rem; }
.text-sm  { font-size:.85rem; }
.text-muted { color:var(--gray-400); }
.text-danger{ color:var(--danger); }
.font-bold  { font-weight:700; }
.c { text-align:center; }
.r { text-align:right; }

/* ═══════════════════════════════════════
   TABLES — Frozen header
   ═══════════════════════════════════════ */
.table-wrap { overflow-x:auto; overflow-y:auto; max-height:520px; border-radius:var(--radius); }
.table { width:100%; border-collapse:separate; border-spacing:0; font-size:.88rem; }
.table thead tr { background:var(--brand-pale); }
.table th {
  padding:.65rem .85rem; text-align:left; font-size:.72rem; font-weight:700;
  color:var(--brand-dark); text-transform:uppercase; letter-spacing:.04em;
  border-bottom:2px solid var(--brand-mid); white-space:nowrap;
  position:sticky; top:0; z-index:2;
  background:var(--brand-pale);
  box-shadow:0 1px 0 var(--brand-mid);
}
.table td { padding:.6rem .85rem; border-bottom:1px solid var(--gray-100); color:var(--gray-700); vertical-align:middle; }
.table tbody tr:hover td { background:var(--brand-pale); }
.table tbody tr:last-child td { border-bottom:none; }
.table tfoot tr td { position:sticky; bottom:0; background:var(--gray-50); border-top:2px solid var(--gray-200); z-index:2; }

/* ═══════════════════════════════════════
   MODALS
   ═══════════════════════════════════════ */
.modal-overlay { position:fixed; inset:0; background:rgba(91,33,182,.35); backdrop-filter:blur(3px); z-index:9999; display:none; align-items:flex-end; justify-content:center; padding:0; }
.modal-overlay.open { display:flex; }
.modal { background:#fff; width:100%; max-width:100%; height:100%; max-height:100%; border-radius:0; display:flex; flex-direction:column; box-shadow:0 -4px 40px rgba(91,33,182,.2); overflow:hidden; }
@media(min-width:768px) {
  .modal-overlay { align-items:center; padding:1.5rem; }
  .modal { width:92vw; max-width:1200px; height:auto; max-height:90vh; border-radius:var(--radius-lg); box-shadow:0 20px 60px rgba(91,33,182,.25); }
}
.modal-header { flex-shrink:0; padding:1.1rem 1.5rem; border-bottom:1px solid var(--gray-100); display:flex; align-items:center; justify-content:space-between; background:#fff; position:sticky; top:0; z-index:10; }
.modal-title  { font-size:1rem; font-weight:700; color:var(--gray-900); }
.modal-close  { background:none; border:none; cursor:pointer; color:var(--gray-400); font-size:1.3rem; line-height:1; padding:.3rem .45rem; border-radius:6px; flex-shrink:0; }
.modal-close:hover { color:var(--gray-700); background:var(--gray-100); }
.modal-body   { flex:1; overflow-y:auto; padding:1.5rem; }
.modal-footer { flex-shrink:0; padding:1rem 1.5rem; border-top:1px solid var(--gray-100); display:flex; gap:.75rem; justify-content:flex-end; background:#fff; position:sticky; bottom:0; }

/* ═══════════════════════════════════════
   MULTI-ROW TABLE
   ═══════════════════════════════════════ */
.multi-rows-wrap  { overflow-x:auto; }
.multi-rows-table { width:100%; min-width:800px; border-collapse:collapse; }
.multi-rows-table th { background:var(--brand-pale); padding:.5rem .75rem; font-size:.72rem; font-weight:700; color:var(--brand-dark); text-transform:uppercase; letter-spacing:.04em; border-bottom:1px solid var(--brand-mid); white-space:nowrap; }
.multi-rows-table td { padding:.45rem .6rem; border-bottom:1px solid var(--gray-100); vertical-align:middle; }
.multi-rows-table tr:last-child td { border-bottom:none; }
.multi-rows-table .form-control,.multi-rows-table .form-select { padding:.4rem .6rem; font-size:.85rem; min-width:80px; }
.btn-remove-row { background:none; border:none; color:var(--danger); cursor:pointer; font-size:1rem; padding:.2rem .4rem; border-radius:4px; }
.btn-remove-row:hover { background:var(--danger-pale); }
.btn-add-row { border:1.5px dashed var(--brand-mid); color:var(--brand); background:none; width:100%; padding:.5rem; border-radius:var(--radius); cursor:pointer; font-size:.85rem; margin-top:.5rem; }
.btn-add-row:hover { border-color:var(--brand); background:var(--brand-pale); }

/* ═══════════════════════════════════════
   EMPTY STATE
   ═══════════════════════════════════════ */
.empty-state { text-align:center; padding:3rem 1.5rem; color:var(--gray-400); }
.empty-state .icon { font-size:2.5rem; display:block; margin-bottom:.75rem; }
.empty-state h3 { font-size:1.1rem; font-weight:700; color:var(--gray-600); margin-bottom:.35rem; }

/* ═══════════════════════════════════════
   GRID / FLEX HELPERS
   ═══════════════════════════════════════ */
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
@media(max-width:900px) { .grid-2,.grid-3 { grid-template-columns:1fr; } }
.d-flex { display:flex; }
.align-center { align-items:center; }
.gap-1 { gap:.5rem; }
.gap-2 { gap:1rem; }
.ml-1  { margin-left:.25rem; }

/* ═══════════════════════════════════════
   NOTIFICATIONS
   ═══════════════════════════════════════ */
.notif-btn { background:none; border:none; cursor:pointer; font-size:1.25rem; padding:.3rem; position:relative; }
.notif-badge { position:absolute; top:-2px; right:-2px; background:var(--danger); color:#fff; border-radius:10px; font-size:.62rem; font-weight:800; padding:.05rem .35rem; }
.notif-dropdown { position:absolute; top:calc(100% + .5rem); right:0; width:320px; background:#fff; border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); border:1px solid var(--gray-200); z-index:500; display:none; }
.notif-dropdown.open { display:block; }
.notif-item { display:flex; gap:.75rem; padding:.75rem 1rem; border-bottom:1px solid var(--gray-100); cursor:pointer; position:relative; }
.notif-item:hover { background:var(--gray-50); }
.notif-item.unread { background:var(--brand-pale); }
.notif-dot { width:8px; height:8px; border-radius:50%; background:var(--brand); flex-shrink:0; margin-top:5px; }

/* ═══════════════════════════════════════
   STATUS TRACKER
   ═══════════════════════════════════════ */
.status-track { display:flex; align-items:center; gap:0; flex-wrap:wrap; }
.status-step  { display:flex; flex-direction:column; align-items:center; font-size:.72rem; color:var(--gray-400); font-weight:600; flex:1; text-align:center; }
.status-dot   { width:32px; height:32px; border-radius:50%; background:var(--gray-200); display:grid; place-items:center; font-size:.85rem; margin-bottom:.35rem; border:2px solid var(--gray-200); }
.status-dot.done   { background:var(--success); border-color:var(--success); color:#fff; }
.status-dot.active { background:var(--brand); border-color:var(--brand); color:#fff; }

/* ═══════════════════════════════════════
   SEARCH / FILTERS BAR
   ═══════════════════════════════════════ */
.filters-bar { display:flex; align-items:center; gap:.75rem; margin-bottom:1.25rem; flex-wrap:wrap; }
.search-wrap { display:flex; align-items:center; gap:.5rem; background:#fff; border:1.5px solid var(--gray-200); border-radius:var(--radius); padding:.5rem 1rem; flex:1; min-width:200px; }
.search-wrap input { border:none; outline:none; font-size:.9rem; font-family:var(--font); width:100%; background:transparent; }
.search-wrap .icon { color:var(--gray-400); }

/* ═══════════════════════════════════════
   SECTION LABEL
   ═══════════════════════════════════════ */
.section-label { font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--brand); margin:.75rem 0 .5rem; padding-bottom:.35rem; border-bottom:1px solid var(--brand-mid); }

/* ═══════════════════════════════════════
   TOM SELECT
   ═══════════════════════════════════════ */
.ts-wrapper { font-family:var(--font); }
.ts-control { border:1.5px solid var(--gray-200) !important; border-radius:var(--radius) !important; padding:.6rem 1rem !important; min-height:unset !important; font-size:.92rem !important; box-shadow:none !important; background:#fff !important; cursor:pointer !important; }
.ts-wrapper.focus .ts-control,.ts-wrapper:focus-within .ts-control { border-color:var(--brand) !important; box-shadow:0 0 0 3px rgba(124,58,237,.15) !important; }
.ts-dropdown { z-index:999999 !important; background:#fff !important; border:1.5px solid var(--gray-200) !important; border-radius:var(--radius) !important; box-shadow:var(--shadow-lg) !important; font-size:.9rem !important; }
.ts-dropdown .option { padding:.55rem 1rem; cursor:pointer; }
.ts-dropdown .option:hover,.ts-dropdown .option.active { background:var(--brand-pale); color:var(--brand); }
.ts-dropdown .option.selected { background:var(--brand); color:#fff; }
.ts-dropdown .no-results { padding:.75rem 1rem; color:var(--gray-400); font-size:.85rem; }
.ts-dropdown-content { max-height:260px; overflow-y:auto; }

/* ═══════════════════════════════════════
   MISC HELPERS
   ═══════════════════════════════════════ */
.text-success { color:var(--success) !important; }
.text-danger  { color:var(--danger)  !important; }
.text-warning { color:var(--warning) !important; }
.text-brand   { color:var(--brand)   !important; }
.text-right   { text-align:right; }
.text-center  { text-align:center; }
.actual-input { width:110px; padding:.4rem .6rem; border:1.5px solid var(--gray-300); border-radius:var(--radius); font-size:.88rem; text-align:right; }
.actual-input:focus { border-color:var(--brand); outline:none; box-shadow:0 0 0 3px rgba(124,58,237,.15); }
.variance-pos { color:var(--success); font-weight:700; }
.variance-neg { color:var(--danger);  font-weight:700; }
.variance-zero{ color:var(--gray-400); }
.balance-in  { color:var(--success); font-weight:700; }
.balance-out { color:var(--danger);  font-weight:700; }
.balance-adj { color:var(--warning); font-weight:700; }
.form-check  { display:flex; align-items:center; gap:.5rem; cursor:pointer; }
.form-check input[type="checkbox"] { width:16px; height:16px; accent-color:var(--brand); cursor:pointer; }
.btn-add-row { border:1.5px dashed var(--brand-mid); color:var(--brand); background:none; width:100%; padding:.5rem; border-radius:var(--radius); cursor:pointer; font-size:.85rem; margin-top:.5rem; }
.btn-add-row:hover { border-color:var(--brand); background:var(--brand-pale); }
.loc-tab-bar { display:flex; gap:.5rem; flex-wrap:wrap; margin-bottom:1.25rem; }
.loc-tab { display:flex; flex-direction:column; gap:.3rem; padding:.75rem 1rem; border-radius:var(--radius-lg); border:2px solid var(--gray-200); background:#fff; cursor:pointer; text-decoration:none; transition:all .15s; flex:1; min-width:150px; color:inherit; }
.loc-tab:hover { border-color:var(--brand); background:var(--brand-pale); text-decoration:none; color:inherit; }
.loc-tab.active { border-color:var(--brand); background:var(--brand); color:#fff; }
.lt-name  { font-weight:700; font-size:.85rem; }
.lt-stats { font-size:.73rem; display:flex; gap:.4rem; flex-wrap:wrap; opacity:.8; }
.lt-pill  { background:rgba(0,0,0,.08); border-radius:10px; padding:.1rem .4rem; }
.loc-tab.active .lt-pill { background:rgba(255,255,255,.2); }

/* ── DEEP BLACK TEXT OVERRIDE (all pages) ── */
.page-content h1, .page-content h2, .page-content h3,
.page-content p, .page-content label, .page-content .form-label,
.table td, .table th,
.card-title, .card-header,
.breadcrumb, .breadcrumb a,
.form-group label, .form-control, .form-select,
.modal-body, .modal-title,
select option,
td, th { color: #0a0a0a !important; }

/* Buttons keep white text */
.btn-primary, .btn-danger, .btn-success, .btn-warning,
.btn-primary *, .btn-danger *, .btn-success *, .btn-warning * { color: #fff !important; }

/* ── BADGE FIX: pale-bg badges need dark text ── */
/* Reset blanket override — use per-class instead */
.badge-success  { background:var(--success-pale) !important; color:#065f46 !important; }
.badge-danger   { background:var(--danger-pale)  !important; color:#991b1b !important; }
.badge-warning  { background:var(--warning-pale) !important; color:#78350f !important; }
.badge-info     { background:var(--info-pale)    !important; color:#1e40af !important; }
.badge-secondary{ background:var(--gray-100)     !important; color:var(--gray-600) !important; }
.badge-brand    { background:var(--brand-pale)   !important; color:var(--brand)    !important; }
.badge-purple   { background:var(--brand-mid)    !important; color:var(--brand-dark) !important; }
/* Nav pill badges (small counts) stay dark-on-mint */
.nav-badge      { background:#7effc0 !important; color:#0f2d1f !important; }
.notif-badge    { background:var(--danger) !important; color:#fff !important; }

/* Dashboard stat cards — keep colored values */
.stat-value { color: var(--brand) !important; }