/* LUNE Inventory Search App */
@import url('https://fonts.googleapis.com/css2?family=Figtree:wght@300;400;500;600;700;800;900&family=PT+Serif:ital,wght@0,400;0,700;1,400&display=swap');

*{margin:0;padding:0;box-sizing:border-box}

:root{
  --black:#1a1a1a;
  --white:#ffffff;
  --cream:#faf6f1;
  --warm-bg:#f5f0eb;
  --peach:#f8b68f;
  --peach-light:#fde8d8;
  --peach-dark:#e8956a;
  --charcoal:#303030;
  --mid-gray:#707070;
  --light-gray:#b0b0b0;
  --border:#e5ddd5;
  --border-light:#efe9e2;
  --green:#2d8a6e;
  --green-light:#e0f0e8;
  --red:#c44040;
  --radius:16px;
  --radius-sm:10px;
  --transition:all .2s ease;
}

html{height:100%}
body{
  font-family:'Figtree',sans-serif;
  background:var(--cream);
  color:var(--charcoal);
  min-height:100%;
  display:flex;
  flex-direction:column;
}

/* NAV BAR */
.inv-nav{
  background:var(--black);
  padding:0 40px;
  height:64px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  position:sticky;top:0;z-index:100;
}
.inv-logo{display:flex;align-items:center;gap:14px;text-decoration:none}
.inv-logo img{height:36px;width:auto;mix-blend-mode:screen;filter:invert(1)}
.inv-logo-divider{width:1px;height:28px;background:rgba(255,255,255,.2)}
.inv-logo-title{
  font-family:'PT Serif',serif;
  font-size:14px;font-weight:400;font-style:italic;
  color:rgba(255,255,255,.7);letter-spacing:.3px;
}
.inv-back{
  color:rgba(255,255,255,.5);
  font-size:13px;font-weight:500;
  text-decoration:none;
  transition:var(--transition);
  display:flex;align-items:center;gap:6px;
}
.inv-back:hover{color:var(--white)}

/* SEARCH SECTION */
.inv-search-section{
  padding:48px 40px 32px;
  text-align:center;
}
.inv-search-section h1{
  font-family:'PT Serif',serif;
  font-size:34px;font-weight:700;
  color:var(--black);
  margin-bottom:8px;
  letter-spacing:-.3px;
}
.inv-search-section p{
  font-size:15px;
  color:var(--mid-gray);
  margin-bottom:28px;
}
.inv-search-bar{
  display:flex;
  align-items:center;
  max-width:720px;
  margin:0 auto;
  gap:0;
  background:var(--white);
  border:1.5px solid var(--border);
  border-radius:var(--radius);
  overflow:hidden;
  transition:var(--transition);
}
.inv-search-bar:focus-within{
  border-color:var(--peach);
  box-shadow:0 0 0 3px rgba(248,182,143,.2);
}
.inv-search-select{
  border:none;
  background:var(--warm-bg);
  padding:14px 16px;
  font-family:'Figtree',sans-serif;
  font-size:14px;font-weight:500;
  color:var(--charcoal);
  cursor:pointer;
  border-right:1.5px solid var(--border);
  outline:none;
  min-width:150px;
}
.inv-search-input{
  flex:1;
  border:none;
  padding:14px 20px;
  font-family:'Figtree',sans-serif;
  font-size:15px;
  color:var(--charcoal);
  background:transparent;
  outline:none;
}
.inv-search-input::placeholder{color:var(--light-gray)}
.inv-search-btn{
  border:none;
  background:var(--black);
  color:var(--white);
  padding:14px 28px;
  font-family:'Figtree',sans-serif;
  font-size:14px;font-weight:600;
  cursor:pointer;
  transition:var(--transition);
  white-space:nowrap;
}
.inv-search-btn:hover{background:var(--charcoal)}

/* ────────────────────────────────────────────────────────── */
/* SEARCH FILTERS                                              */
/* ────────────────────────────────────────────────────────── */

.inv-filters{
  display:flex;
  justify-content:center;
  gap:22px;
  margin:14px auto 0;
  max-width:720px;
  flex-wrap:wrap;
}
.inv-filter{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  font-weight:500;
  color:var(--charcoal);
  cursor:pointer;
  user-select:none;
}
.inv-filter input[type=checkbox]{
  width:14px;
  height:14px;
  accent-color:var(--peach);
  cursor:pointer;
  margin:0;
}
.inv-filter:hover{ color:var(--black); }
.inv-filter-select-input{
  border:1px solid var(--border);
  background:var(--white);
  border-radius:var(--radius-sm);
  padding:5px 10px;
  font-family:'Figtree',sans-serif;
  font-size:13px;
  font-weight:500;
  color:var(--charcoal);
  cursor:pointer;
  outline:none;
  max-width:240px;
}
.inv-filter-select-input:focus{
  border-color:var(--peach);
  box-shadow:0 0 0 3px rgba(248,182,143,.2);
}
.inv-filter.inv-filter-select{ gap:6px; }
.inv-multi-warehouse-pill{
  display:inline-block;
  margin-left:8px;
  padding:2px 10px;
  background:var(--warm-bg);
  border:1px solid var(--border);
  border-radius:999px;
  font-size:11px;
  font-weight:600;
  color:var(--charcoal);
  vertical-align:middle;
}
.inv-multi-item-qtyhint{
  font-size:10px;
  font-weight:500;
  color:var(--light-gray);
  text-transform:uppercase;
  letter-spacing:.4px;
}

/* ────────────────────────────────────────────────────────── */
/* RECENT SEARCHES                                             */
/* ────────────────────────────────────────────────────────── */

.inv-history{
  max-width:720px;
  margin:18px auto 0;
}
.inv-history-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:8px;
  padding:0 4px;
}
.inv-history-label{
  font-size:12px;
  font-weight:600;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:var(--mid-gray);
}
.inv-history-clear{
  background:none;
  border:none;
  padding:2px 4px;
  font-family:'Figtree',sans-serif;
  font-size:12px;
  font-weight:500;
  color:var(--mid-gray);
  cursor:pointer;
  transition:var(--transition);
}
.inv-history-clear:hover{ color:var(--red); }
.inv-history-chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.inv-history-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 6px 6px 12px;
  background:var(--white);
  border:1px solid var(--border);
  border-radius:999px;
  font-family:'Figtree',sans-serif;
  font-size:13px;
  font-weight:500;
  color:var(--charcoal);
  cursor:pointer;
  transition:var(--transition);
  max-width:100%;
}
.inv-history-chip:hover{
  background:var(--peach-light);
  border-color:var(--peach);
}
.inv-history-chip-text{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:260px;
}
.inv-history-chip-remove{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  border-radius:50%;
  font-size:14px;
  line-height:1;
  color:var(--mid-gray);
  background:transparent;
  transition:var(--transition);
}
.inv-history-chip-remove:hover{
  background:var(--red);
  color:var(--white);
}

/* Diagnostic output panel (kept — used by the action=overstock-diag
   admin endpoint; the UI button has been removed but the endpoint remains
   reachable via direct URL when needed) */
.inv-diag-output{
  max-width:1100px;
  margin:16px auto 0;
  padding:16px 20px;
  background:#1A1A1A;
  color:#E3DAD0;
  border-radius:10px;
  border:1px solid rgba(255,255,255,0.04);
  font-family:'SF Mono',Menlo,monospace;
  font-size:11.5px;
  line-height:1.6;
  white-space:pre-wrap;
  word-break:break-word;
  max-height:420px;
  overflow:auto;
  box-shadow:0 8px 30px rgba(0,0,0,0.10);
}

/* OVERSTOCK PILL (shown in list + detail views) */
.inv-overstock-pill{
  display:inline-block;
  vertical-align:middle;
  margin-left:8px;
  background:#FCE9D5;
  color:#9A4B0E;
  font-size:10px;
  font-weight:700;
  letter-spacing:0.8px;
  padding:2px 8px;
  border-radius:10px;
  border:1px solid #F2C895;
  text-transform:uppercase;
}

.inv-discontinued-pill{
  display:inline-block;
  vertical-align:middle;
  margin-left:8px;
  background:#EDEDED;
  color:#6B6B6B;
  font-size:10px;
  font-weight:700;
  letter-spacing:0.8px;
  padding:2px 8px;
  border-radius:10px;
  border:1px solid #D4D4D4;
  text-transform:uppercase;
}

/* RESULTS AREA */
.inv-results{
  max-width:1200px;
  margin:0 auto 80px;
  padding:0 40px;
}

/* PRODUCT HEADER */
.inv-product-header{
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:28px 32px;
  margin-bottom:24px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
}
.inv-product-info h2{
  font-family:'PT Serif',serif;
  font-size:24px;font-weight:700;
  color:var(--black);
  margin-bottom:8px;
}
.inv-product-meta{
  display:flex;
  gap:24px;
  flex-wrap:wrap;
}
.inv-product-meta span{
  font-size:13px;
  color:var(--mid-gray);
}
.inv-product-meta strong{
  color:var(--charcoal);
  font-weight:600;
}
/* Cross-link to the SKU Catalog (apps/active-sku-list) — its ?q= deep link
   runs a search for this SKU on load, default tab "all", so discontinued
   and in-development SKUs resolve too. */
.inv-product-link{
  font-size:13px;
  font-weight:600;
  color:var(--peach-dark);
  text-decoration:none;
  white-space:nowrap;
}
.inv-product-link:hover{ text-decoration:underline; }
.inv-total-qty{
  text-align:right;
  flex-shrink:0;
}
.inv-total-qty .qty-number{
  font-family:'PT Serif',serif;
  font-size:32px;font-weight:700;
  color:var(--black);
  line-height:1;
}
.inv-total-qty .qty-label{
  font-size:12px;
  color:var(--mid-gray);
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:.5px;
  margin-top:4px;
}

/* ALLOCATION SUMMARY CARDS */
.inv-alloc-summary{
  display:flex;
  gap:16px;
  margin-bottom:24px;
}
.alloc-card{
  flex:1;
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  padding:20px 24px;
  text-align:center;
}
.alloc-number{
  font-family:'PT Serif',serif;
  font-size:24px;font-weight:700;
  color:var(--black);
  line-height:1;
  margin-bottom:6px;
}
.alloc-number.qty-positive{color:var(--green)}
.alloc-number.qty-negative{color:var(--red)}
.alloc-number.qty-zero{color:var(--light-gray)}
.alloc-label{
  font-size:11px;
  font-weight:600;
  color:var(--mid-gray);
  text-transform:uppercase;
  letter-spacing:.5px;
}

/* Clickable Committed card → lazy sales-order breakdown */
.alloc-card-clickable{
  cursor:pointer;
  transition:var(--transition);
}
.alloc-card-clickable:hover,
.alloc-card-clickable:focus-visible{
  border-color:var(--peach);
  background:rgba(248,182,143,.06);
}
.alloc-card-hint{
  margin-top:6px;
  font-size:11px;
  font-weight:600;
  color:var(--peach-dark);
}

/* Committed breakdown extras */
.inv-committed-group{
  cursor:pointer;
}
.inv-committed-group td{
  background:rgba(250,246,241,.8);
}
.inv-committed-group:hover td,
.inv-committed-group:focus-visible td{
  background:rgba(248,182,143,.12);
}
.inv-committed-chevron{
  display:inline-block;
  width:16px;
  color:var(--peach-dark);
  font-size:12px;
}
.inv-committed-group-meta{
  margin-left:10px;
  font-size:12px;
  color:var(--mid-gray);
}
.inv-committed-line td{
  font-size:13px;
}
.inv-committed-line-indent{
  padding-left:48px !important;
}
.inv-committed-other td{
  color:var(--mid-gray);
}
.inv-committed-note{
  padding:12px 28px;
  font-size:13px;
  color:#6b5a3e;
  background:#fef9ef;
  border-bottom:1px solid var(--border-light);
}

/* RESULT SECTION CARDS */
.inv-section{
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--radius);
  margin-bottom:24px;
  overflow:hidden;
}
.inv-section-header{
  display:flex;
  align-items:center;
  gap:10px;
  padding:20px 28px;
  border-bottom:1px solid var(--border-light);
}
.inv-section-icon{
  font-size:20px;
}
.inv-section-header h3{
  font-family:'PT Serif',serif;
  font-size:18px;font-weight:700;
  color:var(--black);
}
.inv-section-count{
  margin-left:auto;
  font-size:12px;
  font-weight:600;
  color:var(--mid-gray);
  background:var(--warm-bg);
  padding:4px 12px;
  border-radius:20px;
}

/* DATA TABLES */
.inv-table{
  width:100%;
  border-collapse:collapse;
}
.inv-table thead th{
  text-align:left;
  padding:12px 20px;
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.8px;
  color:var(--mid-gray);
  background:var(--warm-bg);
  border-bottom:1px solid var(--border-light);
}
.inv-table tbody tr{
  transition:var(--transition);
}
.inv-table tbody tr:hover{
  background:rgba(248,182,143,.06);
}
.inv-table tbody tr:nth-child(even){
  background:rgba(250,246,241,.5);
}
.inv-table tbody tr:nth-child(even):hover{
  background:rgba(248,182,143,.06);
}
.inv-table tbody td{
  padding:12px 20px;
  font-size:14px;
  color:var(--charcoal);
  border-bottom:1px solid var(--border-light);
}
.inv-table tbody tr:last-child td{
  border-bottom:none;
}

/* NUMERIC COLUMNS */
.inv-table .num{
  text-align:right;
  font-variant-numeric:tabular-nums;
  font-weight:500;
}
.inv-table thead .num{text-align:right}

/* TOTALS ROW */
.inv-table tfoot td{
  padding:14px 20px;
  font-size:14px;
  font-weight:700;
  color:var(--black);
  background:var(--warm-bg);
  border-top:2px solid var(--border);
}

/* POSITIVE/NEGATIVE INDICATORS */
.qty-positive{color:var(--green)}
.qty-negative{color:var(--red)}
.qty-zero{color:var(--light-gray)}

/* NEGATIVE-INVENTORY DISCREPANCY BANNER */
.inv-neg-banner{
  margin:0 28px 16px;
  padding:14px 18px;
  background:#fef4ec;
  border:1px solid #f3c9a8;
  border-left:4px solid var(--peach-dark);
  border-radius:10px;
  font-size:13px;
  color:#6b4a2e;
}
.inv-neg-banner-title{
  font-weight:600;
  font-size:14px;
  margin-bottom:6px;
  color:#5a3a1f;
}
.inv-neg-banner-title span{
  margin-right:6px;
  color:var(--peach-dark);
}
.inv-neg-banner-list{
  margin:4px 0 8px;
  padding-left:22px;
  list-style:disc;
}
.inv-neg-banner-list li{margin:2px 0}
.inv-neg-banner-note{
  font-size:12px;
  color:#8a6b4d;
  font-style:italic;
}

/* EMPTY STATE */
.inv-empty{
  text-align:center;
  padding:60px 40px;
}
.inv-empty-icon{
  font-size:48px;
  margin-bottom:16px;
  opacity:.4;
}
.inv-empty h3{
  font-family:'PT Serif',serif;
  font-size:20px;font-weight:700;
  color:var(--charcoal);
  margin-bottom:8px;
}
.inv-empty p{
  font-size:14px;
  color:var(--mid-gray);
  max-width:400px;
  margin:0 auto;
  line-height:1.5;
}

/* LOADING SPINNER */
.inv-loading{
  display:none;
  text-align:center;
  padding:60px 40px;
}
.inv-loading.active{display:block}
.inv-spinner{
  width:40px;height:40px;
  border:3px solid var(--border);
  border-top-color:var(--peach);
  border-radius:50%;
  animation:spin .8s linear infinite;
  margin:0 auto 16px;
}
@keyframes spin{to{transform:rotate(360deg)}}
.inv-loading p{
  font-size:14px;
  color:var(--mid-gray);
}

/* ERROR STATE */
.inv-error{
  display:none;
  padding:24px 28px;
  background:var(--white);
  border:1px solid var(--red);
  border-radius:var(--radius);
  margin-bottom:24px;
  gap:18px;
  align-items:flex-start;
}
.inv-error.active{display:flex}
.inv-error-icon{
  flex:0 0 auto;
  width:36px;height:36px;
  border-radius:50%;
  background:var(--red);
  color:var(--white);
  font-weight:700;
  font-size:20px;
  display:flex;align-items:center;justify-content:center;
  line-height:1;
}
.inv-error-body{flex:1;min-width:0}
.inv-error-title{
  font-size:16px;
  font-weight:700;
  color:var(--red);
  margin-bottom:6px;
}
.inv-error-message{
  font-size:14px;
  color:var(--charcoal);
  margin-bottom:10px;
  line-height:1.5;
}
.inv-error-actions{
  list-style:none;
  margin:0 0 12px;
  padding:0;
  font-size:13px;
  color:var(--mid-gray);
}
.inv-error-actions li{
  position:relative;
  padding-left:18px;
  margin-bottom:4px;
  line-height:1.5;
}
.inv-error-actions li::before{
  content:"→";
  position:absolute;
  left:0;
  color:var(--peach-dark);
  font-weight:700;
}
.inv-error-actions a{
  color:var(--peach-dark);
  text-decoration:underline;
}
.inv-error-details{
  margin:8px 0 12px;
  font-size:12px;
  color:var(--light-gray);
}
.inv-error-details summary{
  cursor:pointer;
  user-select:none;
  color:var(--mid-gray);
}
.inv-error-details pre{
  margin-top:6px;
  padding:10px 12px;
  background:var(--warm-bg);
  border-radius:var(--radius-sm);
  white-space:pre-wrap;
  word-break:break-word;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:12px;
  color:var(--charcoal);
}
.inv-error-buttons{display:flex;gap:8px;flex-wrap:wrap}
.inv-error-retry{
  background:var(--peach);
  color:var(--black);
  border:none;
  border-radius:var(--radius-sm);
  padding:8px 18px;
  font-size:13px;
  font-weight:600;
  cursor:pointer;
  font-family:inherit;
  transition:var(--transition);
}
.inv-error-retry:hover{background:var(--peach-dark)}
.inv-error-retry[hidden]{display:none}

/* MULTIPLE RESULTS LIST */
.inv-multi-results{
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--radius);
  margin-bottom:24px;
  overflow:hidden;
}
.inv-multi-header{
  padding:20px 28px;
  border-bottom:1px solid var(--border-light);
}
.inv-multi-header h3{
  font-family:'PT Serif',serif;
  font-size:18px;font-weight:700;
  color:var(--black);
}
.inv-multi-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 28px;
  border-bottom:1px solid var(--border-light);
  cursor:pointer;
  transition:var(--transition);
}
.inv-multi-item:last-child{border-bottom:none}
.inv-multi-item:hover{background:rgba(248,182,143,.06)}
.inv-multi-item-name{
  font-size:14px;font-weight:500;
  color:var(--charcoal);
}
.inv-multi-item-sku{
  font-size:13px;
  color:var(--mid-gray);
  margin-left:12px;
}
.inv-multi-item-qty{
  font-size:14px;font-weight:600;
  color:var(--charcoal);
  font-variant-numeric:tabular-nums;
}
.inv-multi-item-arrow{
  color:var(--light-gray);
  margin-left:12px;
  font-size:16px;
}

/* SIMILAR SKUS - CLICKABLE ROWS */
.inv-table tbody tr.clickable{cursor:pointer}
.inv-table tbody tr.clickable:hover{
  background:rgba(248,182,143,.1);
}

/* FOOTER */
.inv-footer{
  margin-top:auto;
  padding:24px 40px;
  text-align:center;
  font-size:12px;
  color:var(--light-gray);
  border-top:1px solid var(--border-light);
}

/* RESPONSIVE */
@media(max-width:768px){
  .inv-nav{padding:0 20px}
  .inv-search-section{padding:32px 20px 24px}
  .inv-search-section h1{font-size:26px}
  .inv-search-bar{flex-direction:column;border-radius:var(--radius-sm)}
  .inv-search-select{
    border-right:none;
    border-bottom:1.5px solid var(--border);
    width:100%;
    min-width:unset;
  }
  .inv-search-input{width:100%}
  .inv-search-btn{width:100%;border-radius:0}
  .inv-filters{gap:14px;flex-direction:row;justify-content:center}
  .inv-results{padding:0 16px}
  .inv-product-header{flex-direction:column;padding:20px}
  .inv-total-qty{text-align:left}
  .inv-alloc-summary{flex-wrap:wrap;gap:10px}
  .alloc-card{min-width:calc(50% - 10px);padding:14px 16px}
  .alloc-number{font-size:20px}
  .inv-section-header{padding:16px 20px}
  .inv-table thead th,
  .inv-table tbody td{padding:10px 12px;font-size:13px}
  .inv-table thead th{font-size:10px}
}

@media(max-width:480px){
  .inv-table{font-size:12px}
  .inv-table thead th,
  .inv-table tbody td{padding:8px 10px}
}

/* MOBILE HORIZONTAL SCROLL for SKU-search result tables.
   The .inv-table result tables (Inventory by Location, Committed Breakdown,
   Open Purchase Orders, Similar SKUs) render into plain wrapper divs inside
   .inv-section{overflow:hidden} with no scroll container, so on narrow
   viewports wide tables (the PO table has up to 10 columns) were clipped with
   no way to reach the off-screen columns. Give each wrapper its own horizontal
   scroll and let the table grow to its content width so it overflows (and thus
   scrolls) instead of squishing. Scoped to the mobile breakpoint so desktop
   layout is unchanged. (The "📊 All Inventory" dashboard tables already scroll
   via .invd-tablewrap{overflow:auto} and are intentionally untouched here.) */
@media(max-width:768px){
  #inventoryTableWrap,
  #committedTableWrap,
  #poTableWrap,
  #similarTableWrap{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  .inv-table{min-width:max-content}
}

/* ═══════════════════════════════════════════════════════════════════
   INVENTORY DASHBOARD ("📊 All Inventory")
   Scoped under .invd-* so they cannot collide with the existing
   .inv-* search-app styles above.
   ═══════════════════════════════════════════════════════════════════ */

/* Tabs */
.inv-tabs{
  display:flex;gap:4px;
  padding:14px 40px 0;
  background:var(--cream);
  border-bottom:1px solid var(--border-light);
}
.inv-tab{
  background:transparent;
  border:none;
  padding:12px 20px;
  font-family:'Figtree',sans-serif;
  font-size:14px;font-weight:600;
  color:var(--mid-gray);
  cursor:pointer;
  border-radius:8px 8px 0 0;
  border-bottom:3px solid transparent;
  transition:var(--transition);
}
.inv-tab:hover{color:var(--charcoal);background:rgba(0,0,0,.03)}
.inv-tab.active{color:var(--black);border-bottom-color:var(--peach);background:var(--white)}

/* Dashboard header */
.invd-header{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:16px;
  padding:28px 40px 16px;
}
.invd-header h1{
  font-family:'PT Serif',serif;
  font-size:30px;font-weight:700;color:var(--black);
  letter-spacing:-.3px;margin:0 0 4px;
}
.invd-sub{
  font-size:13px;color:var(--mid-gray);margin:0;
}
.invd-warning{
  margin-top:6px;
  padding:6px 10px;
  background:rgba(196,64,64,.08);
  color:var(--red);
  border-radius:6px;
  font-size:12px;font-weight:600;
}
.invd-header-right{display:flex;gap:8px;flex-shrink:0}

/* Filter bar */
.invd-filterbar{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  padding:0 40px 16px;
}
.invd-search{
  flex:1;min-width:240px;
  height:40px;
  padding:0 14px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--white);
  font-family:'Figtree',sans-serif;
  font-size:14px;
  color:var(--charcoal);
  transition:var(--transition);
}
.invd-search:focus{outline:none;border-color:var(--peach);box-shadow:0 0 0 3px rgba(248,182,143,.2)}
.invd-fld{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--mid-gray);font-weight:500}
.invd-checkbox{cursor:pointer}
.invd-checkbox input{width:16px;height:16px;accent-color:var(--peach-dark)}
.invd-select{
  height:36px;padding:0 30px 0 12px;
  border:1px solid var(--border);
  border-radius:8px;
  background:var(--white);
  font-family:'Figtree',sans-serif;
  font-size:13px;color:var(--charcoal);
  cursor:pointer;
}
.invd-select:focus{outline:none;border-color:var(--peach)}
.invd-select-sm{height:30px;font-size:12px}
.invd-rowcount{margin-left:auto;font-size:13px;color:var(--mid-gray);font-weight:500}

/* Buttons */
.invd-btn{
  display:inline-flex;align-items:center;gap:6px;
  height:38px;padding:0 16px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--white);
  font-family:'Figtree',sans-serif;
  font-size:13px;font-weight:600;
  color:var(--charcoal);
  cursor:pointer;
  transition:var(--transition);
  white-space:nowrap;
}
.invd-btn:hover:not(:disabled){background:var(--warm-bg);border-color:var(--peach)}
.invd-btn:disabled{opacity:.5;cursor:not-allowed}
.invd-btn-primary{background:var(--black);color:var(--white);border-color:var(--black)}
.invd-btn-primary:hover:not(:disabled){background:var(--charcoal);border-color:var(--charcoal)}
.invd-btn-ghost{background:transparent;border-color:transparent;color:var(--mid-gray)}
.invd-btn-ghost:hover:not(:disabled){background:var(--warm-bg);color:var(--charcoal)}
.invd-btn-sm{height:28px;padding:0 12px;font-size:12px;border-radius:8px}

/* Card */
.invd-card{
  margin:0 40px 24px;
  background:var(--white);
  border:1px solid var(--border-light);
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:0 1px 3px rgba(26,26,26,.04);
}
.invd-card-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 24px;
  border-bottom:1px solid var(--border-light);
}
.invd-card-header h2{
  font-family:'Figtree',sans-serif;
  font-size:16px;font-weight:700;color:var(--black);
  letter-spacing:.1px;margin:0;
}

/* Table */
.invd-tablewrap{overflow:auto;max-height:none}
.invd-table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}
.invd-table thead th{
  position:sticky;top:0;
  background:var(--warm-bg);
  text-align:left;
  padding:11px 14px;
  font-size:11px;font-weight:700;
  text-transform:uppercase;letter-spacing:.4px;
  color:var(--mid-gray);
  border-bottom:1px solid var(--border-light);
  white-space:nowrap;
}
.invd-table tbody td{
  padding:11px 14px;
  border-bottom:1px solid var(--border-light);
  color:var(--charcoal);
  vertical-align:middle;
}
.invd-table tbody tr:hover{background:var(--cream)}
.invd-th-num{text-align:right}
.invd-th-center{text-align:center}
.invd-num{text-align:right;font-variant-numeric:tabular-nums}
.invd-mono{font-family:'SF Mono',Menlo,Consolas,monospace;font-size:12px;color:var(--mid-gray)}
.invd-cell-name{font-weight:500;max-width:280px}
.invd-cell-facilities{max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.invd-cell-risk{color:var(--red);font-weight:700}

/* Favorite star */
.invd-fav{
  background:none;border:none;
  font-size:16px;color:var(--peach-dark);
  cursor:pointer;line-height:1;padding:2px 4px;
  transition:var(--transition);
}
.invd-fav:hover{transform:scale(1.15)}

/* At-risk badges */
.invd-status-bolt{
  display:inline-flex;align-items:center;justify-content:center;
  width:24px;height:24px;border-radius:50%;
  background:rgba(196,64,64,.12);
  color:var(--red);font-size:13px;
}
.invd-badge-risk{
  display:inline-block;
  padding:3px 10px;
  background:var(--black);color:var(--white);
  border-radius:6px;
  font-size:11px;font-weight:700;
  letter-spacing:.3px;
}

/* Empty / error */
.invd-empty{
  padding:40px 24px;text-align:center;
  color:var(--mid-gray);font-size:14px;
}
.invd-empty-error{color:var(--red)}

/* Pagination */
.invd-pagination{
  display:flex;align-items:center;justify-content:flex-end;gap:14px;
  padding:14px 24px;
  border-top:1px solid var(--border-light);
  font-size:13px;color:var(--mid-gray);
}
.invd-pagination label{display:flex;align-items:center;gap:8px}
.invd-page-info{font-variant-numeric:tabular-nums}
.invd-page-btn{
  width:32px;height:32px;
  border:1px solid var(--border);
  border-radius:8px;
  background:var(--white);
  cursor:pointer;
  font-size:14px;
  color:var(--charcoal);
  transition:var(--transition);
}
.invd-page-btn:hover:not(:disabled){background:var(--warm-bg);border-color:var(--peach)}
.invd-page-btn:disabled{opacity:.4;cursor:not-allowed}

/* Modal */
.invd-modal{
  position:fixed;inset:0;z-index:1000;
  display:flex;align-items:center;justify-content:center;
  padding:20px;
}
.invd-modal-backdrop{
  position:absolute;inset:0;
  background:rgba(26,26,26,.5);
  backdrop-filter:blur(2px);
}
.invd-modal-panel{
  position:relative;
  background:var(--white);
  border-radius:var(--radius);
  max-width:520px;width:100%;
  max-height:80vh;overflow:auto;
  box-shadow:0 20px 60px rgba(0,0,0,.25);
}
.invd-modal-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 24px 12px;
}
.invd-modal-header h2{
  font-family:'Figtree',sans-serif;
  font-size:18px;font-weight:700;color:var(--black);margin:0;
}
.invd-modal-close{
  background:none;border:none;
  font-size:24px;color:var(--mid-gray);
  cursor:pointer;line-height:1;padding:4px 8px;
  border-radius:6px;
}
.invd-modal-close:hover{background:var(--warm-bg);color:var(--charcoal)}
.invd-modal-sub{padding:0 24px 16px;color:var(--mid-gray);font-size:13px;margin:0}
.invd-modal-body{padding:0 24px 16px}
.invd-modal-footer{
  display:flex;justify-content:flex-end;gap:8px;
  padding:16px 24px;
  border-top:1px solid var(--border-light);
}
.invd-thresholds-table{width:100%;border-collapse:collapse}
.invd-thresholds-table th{
  text-align:left;padding:10px 12px;
  font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;
  color:var(--mid-gray);
  border-bottom:1px solid var(--border-light);
}
.invd-thresholds-table td{
  padding:10px 12px;
  border-bottom:1px solid var(--border-light);
  font-size:14px;color:var(--charcoal);
}
.invd-thresh-key{font-family:'SF Mono',Menlo,Consolas,monospace;font-size:11px;color:var(--mid-gray);margin-top:2px}
.invd-thresh-input{
  width:90px;height:32px;padding:0 10px;
  border:1px solid var(--border);
  border-radius:8px;
  font-family:'Figtree',sans-serif;font-size:13px;
  text-align:right;font-variant-numeric:tabular-nums;
}
.invd-thresh-input:focus{outline:none;border-color:var(--peach);box-shadow:0 0 0 3px rgba(248,182,143,.2)}

/* Toast */
.invd-toast{
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%);
  z-index:1100;
  padding:12px 20px;
  background:var(--charcoal);color:var(--white);
  border-radius:10px;
  font-size:13px;font-weight:500;
  box-shadow:0 8px 24px rgba(0,0,0,.18);
  max-width:90%;
}
.invd-toast-error{background:var(--red)}

@media(max-width:900px){
  .invd-header,
  .invd-filterbar,
  .invd-card{margin-left:16px;margin-right:16px;padding-left:0;padding-right:0}
  .invd-header{padding:20px 16px 12px}
  .invd-filterbar{padding:0 16px 16px}
  .invd-card{margin-left:16px;margin-right:16px}
}

