/*
 * Thuthi Wholesale Bulk Order — bulk-order.css  v2
 *
 * SPECIFICITY STRATEGY to beat ecogrow-custom-inline-css & style.scss:
 *
 *  1. Use #tbo-wrap (ID selector, specificity 1-0-0) as the root.
 *     This beats ALL theme class selectors (0-1-0) without needing !important.
 *
 *  2. Child selectors become #tbo-wrap .tbo-* (1-1-0) — even stronger.
 *
 *  3. !important is used ONLY on properties known to bleed from themes:
 *     - font-size, line-height, height on inputs/selects (WooCommerce resets)
 *     - border, padding on td/th (table resets)
 *     - box-shadow, outline on buttons/inputs (theme focus styles)
 *     - background, color on buttons (theme button styles)
 *
 *  4. Everything else relies on the higher specificity of #tbo-wrap.
 */

/* ═══════════════════════════════════════════════════
   0. DESIGN TOKENS
═══════════════════════════════════════════════════ */
#tbo-wrap {
    --tbo-green:        #1e5c38;
    --tbo-green-dark:   #174a2e;
    --tbo-green-light:  #eaf3ed;
    --tbo-green-badge:  #d1f0de;
    --tbo-text:         #111827;
    --tbo-text-muted:   #6b7280;
    --tbo-text-label:   #9ca3af;
    --tbo-white:        #ffffff;
    --tbo-border:       #e5e7eb;
    --tbo-alt-bg:       #f9fafb;
    --tbo-red:          #dc2626;
    --tbo-yellow-bg:    #fef9ec;
    --tbo-mint-bg:      #f0f9f4;
    --tbo-neutral-bg:   #f3f4f6;
    --tbo-radius:       0px;
    --tbo-radius-sm:    0px;
    --tbo-shadow-card:  0 1px 4px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.04);
    --tbo-sidebar-w:    280px;
}

/* ═══════════════════════════════════════════════════
   1. HARD RESETS — neutralise theme bleeds
═══════════════════════════════════════════════════ */
#tbo-wrap,
#tbo-wrap *,
#tbo-wrap *::before,
#tbo-wrap *::after {
    box-sizing: border-box !important;
}

#tbo-wrap {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    font-size: 14px;
    line-height: 1.5;
    color: var(--tbo-text);
    background: transparent;
    padding: 0;
    margin: 0;
    -webkit-font-smoothing: antialiased;
}

/* Table resets — themes love messing with these */
#tbo-wrap table  { border-collapse: collapse !important; border-spacing: 0 !important; background: none !important; margin: 0 !important; }
#tbo-wrap td,
#tbo-wrap th     { border: none !important; padding: 0 !important; background: none !important; }

/* Input / select resets */
#tbo-wrap input,
#tbo-wrap select,
#tbo-wrap textarea,
#tbo-wrap button {
    font-family: inherit !important;
    font-size: inherit !important;
    line-height: normal !important;
}
#tbo-wrap input,
#tbo-wrap select  { outline: none !important; box-shadow: none !important; border-radius: 0; }
#tbo-wrap button  { outline: none !important; box-shadow: none !important; border: none !important; background: none; cursor: pointer; }

/* Typography resets */
#tbo-wrap h1,
#tbo-wrap h2,
#tbo-wrap h3,
#tbo-wrap h4      { margin: 0 !important; padding: 0 !important; font-weight: inherit; }
#tbo-wrap p        { margin: 0 !important; padding: 0 !important; }
#tbo-wrap a        { text-decoration: none !important; }
#tbo-wrap img      { max-width: 100% !important; display: block; }
#tbo-wrap ul,
#tbo-wrap ol       { margin: 0 !important; padding: 0 !important; list-style: none !important; }

/* ═══════════════════════════════════════════════════
   2. PAGE HEADER
═══════════════════════════════════════════════════ */
#tbo-wrap .tbo-header {
    margin: 0 0 28px 0;
    padding: 0;
}

#tbo-wrap .tbo-header__title {
    font-size: 1.75rem !important;
    font-weight: 700 !important;
    color: var(--tbo-text) !important;
    margin: 0 0 6px 0 !important;
    line-height: 1.2 !important;
    text-transform: none !important;
    letter-spacing: -0.01em !important;
    background: none !important;
    border: none !important;
    padding: 0 !important;
}

#tbo-wrap .tbo-header__sub {
    font-size: .9rem !important;
    color: var(--tbo-text-muted) !important;
    margin: 0 !important;
}

/* ═══════════════════════════════════════════════════
   3. BODY LAYOUT  (table + sidebar)
═══════════════════════════════════════════════════ */
#tbo-wrap .tbo-body {
    display: grid;
    grid-template-columns: 1fr var(--tbo-sidebar-w);
    gap: 24px;
    align-items: start;
}

@media (max-width: 960px) {
    #tbo-wrap .tbo-body          { grid-template-columns: 1fr; }
    #tbo-wrap .tbo-sidebar       { order: -1; }
}

/* ═══════════════════════════════════════════════════
   4. FILTER BAR
═══════════════════════════════════════════════════ */
/* Outer wrapper: block so inline-flex children naturally left-align */
#tbo-wrap .tbo-filters-bar {
    display: block;
    margin: 0 0 14px 0;
}

#tbo-wrap .tbo-filters {
    display: inline-flex;   /* shrink-wrap to content, left-aligned naturally */
    align-items: center;
    gap: 10px;
    margin: 0;
    flex-wrap: wrap;
    width: auto;            /* never stretch to full container width */
    max-width: 100%;
}

#tbo-wrap .tbo-search-wrap {
    position: relative;
    flex: 0 0 auto;
    width: 220px;
}

#tbo-wrap .tbo-search-icon {
    position: absolute;
    left: 11px;
    top: 50%;
    transform: translateY(-50%);
    width: 15px;
    height: 15px;
    stroke: var(--tbo-text-muted);
    fill: none;
    pointer-events: none;
    display: block;
    z-index: 1;
}

#tbo-wrap .tbo-search-input {
    display: block !important;
    width: 100% !important;
    height: 38px !important;
    padding: 0 14px 0 36px !important;
    border: 1px solid var(--tbo-border) !important;
    border-radius: var(--tbo-radius) !important;
    font-size: .875rem !important;
    color: var(--tbo-text) !important;
    background: var(--tbo-white) !important;
    transition: border-color .15s, box-shadow .15s;
    margin: 0 !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}

#tbo-wrap .tbo-search-input:focus {
    border-color: var(--tbo-green) !important;
    box-shadow: 0 0 0 3px rgba(30,92,56,.1) !important;
    outline: none !important;
}

#tbo-wrap .tbo-search-input::placeholder { color: var(--tbo-text-label); }

#tbo-wrap .tbo-select-wrap {
    position: relative;
    flex-shrink: 0;
}

/* Kill ANY pseudo-element the theme injects inside the select wrapper
   (e.g. .select_container::before / ::after fontello icon arrows) */
#tbo-wrap .tbo-select-wrap *::before,
#tbo-wrap .tbo-select-wrap *::after {
    content: none !important;
    display: none !important;
    font-family: inherit !important;
    font-size: 0 !important;
    width: 0 !important;
    height: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

#tbo-wrap .tbo-select {
    display: block !important;
    height: 38px !important;
    padding: 0 34px 0 12px !important;
    border: 1px solid var(--tbo-border) !important;
    border-radius: 0 !important;
    font-size: .875rem !important;
    color: var(--tbo-text) !important;
    background-color: var(--tbo-white) !important;
    background-image: none !important;
    background-repeat: no-repeat !important;
    background-attachment: initial !important;
    background-origin: initial !important;
    background-clip: initial !important;
    /* Suppress native arrows — all engines */
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    cursor: pointer;
    transition: border-color .15s;
    min-width: 155px;
    margin: 0 !important;
    /* Prevent Chrome/Edge from injecting their own dropdown arrow */
    background-position: right -9999px center !important;
}
/* IE 10-11 & Edge legacy arrow suppression */
#tbo-wrap .tbo-select::-ms-expand  { display: none !important; }
/* WebKit inner-button that sometimes reappears */
#tbo-wrap .tbo-select::-webkit-inner-spin-button { display: none !important; }

#tbo-wrap .tbo-select:focus {
    border-color: var(--tbo-green) !important;
    box-shadow: 0 0 0 3px rgba(30,92,56,.1) !important;
    outline: none !important;
}

#tbo-wrap .tbo-select-arrow {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    width: 14px;
    height: 14px;
    stroke: var(--tbo-text-muted);
    fill: none;
    pointer-events: none;
}

#tbo-wrap .tbo-product-count {
    font-size: .84rem;
    color: var(--tbo-text-muted);
    white-space: nowrap;
    flex-shrink: 0;
}

/* ═══════════════════════════════════════════════════
   5. TABLE SHELL
═══════════════════════════════════════════════════ */
#tbo-wrap .tbo-table-outer {
    background: var(--tbo-white);
    border-radius: var(--tbo-radius);
    box-shadow: var(--tbo-shadow-card);
    border: 1px solid var(--tbo-border);
    overflow: hidden;
}

#tbo-wrap .tbo-table {
    width: 100% !important;
    border-collapse: collapse !important;
    table-layout: auto;
    margin: 0 !important;
    padding: 0 !important;
}

/* Head row */
#tbo-wrap .tbo-table__head-row {
    background: var(--tbo-alt-bg) !important;
}

#tbo-wrap .tbo-th {
    padding: 11px 16px !important;
    font-size: .7rem !important;
    font-weight: 600 !important;
    letter-spacing: .07em !important;
    color: var(--tbo-text-muted) !important;
    text-transform: uppercase !important;
    text-align: left !important;
    border-bottom: 1px solid var(--tbo-border) !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    white-space: nowrap;
    vertical-align: middle !important;
    background: transparent !important;
}

#tbo-wrap .tbo-th--image    { width: 60px !important; }
#tbo-wrap .tbo-th--product  { min-width: 170px !important; }
#tbo-wrap .tbo-th--variant  { width: 90px !important; }
#tbo-wrap .tbo-th--price    { width: 120px !important; text-align: right !important; }
#tbo-wrap .tbo-th--stock    { width: 120px !important; }
#tbo-wrap .tbo-th--qty      { width: 140px !important; }
#tbo-wrap .tbo-th--subtotal { width: 110px !important; text-align: right !important; }

/* ═══════════════════════════════════════════════════
   6. GROUP HEADER ROW
═══════════════════════════════════════════════════ */
/* Note: .tbo-group-row td padding/border are already reset by the
   global `#tbo-wrap td` rule above — no repeat needed here. */

#tbo-wrap .tbo-group-cell {
    padding: 8px 16px 8px 14px !important;
    background: var(--tbo-green-light) !important;
    border-bottom: 1px solid var(--tbo-border) !important;
    border-top: 1px solid var(--tbo-border) !important;
    border-left: 3px solid var(--tbo-green) !important;
}

#tbo-wrap .tbo-group-row:first-child .tbo-group-cell {
    border-top: none !important;
}

#tbo-wrap .tbo-group-name {
    font-size: .84rem !important;
    font-weight: 700 !important;
    color: var(--tbo-green) !important;
    display: inline !important;
}

#tbo-wrap .tbo-group-count {
    font-size: .78rem !important;
    color: var(--tbo-text-muted) !important;
    margin-left: 6px !important;
    font-weight: 400 !important;
}

/* ═══════════════════════════════════════════════════
   7. PRODUCT ROW
═══════════════════════════════════════════════════ */
#tbo-wrap .tbo-product-row {
    border-bottom: 1px solid var(--tbo-border) !important;
    transition: background .1s;
}

#tbo-wrap .tbo-product-row:last-child  { border-bottom: none !important; }
#tbo-wrap .tbo-product-row:hover       { background: #fafcfb !important; }
#tbo-wrap .tbo-product-row--oos        { opacity: .55; }

#tbo-wrap .tbo-td {
    padding: 14px 16px !important;
    vertical-align: middle !important;
    border: none !important;
    background: transparent !important;
    font-size: .875rem !important;
    color: var(--tbo-text) !important;
}

#tbo-wrap .tbo-td--price    { text-align: right !important; white-space: nowrap !important; }
#tbo-wrap .tbo-td--subtotal { text-align: right !important; white-space: nowrap !important; }

/* Product name + SKU */
#tbo-wrap .tbo-product-name {
    font-weight: 600 !important;
    font-size: .875rem !important;
    color: var(--tbo-text) !important;
    margin: 0 0 3px 0 !important;
    line-height: 1.3 !important;
    display: block !important;
    background: none !important;
}

#tbo-wrap .tbo-product-sku {
    font-size: .76rem !important;
    color: var(--tbo-text-muted) !important;
    margin: 0 !important;
    font-weight: 400 !important;
    display: block !important;
    letter-spacing: .01em !important;
}

#tbo-wrap .tbo-variant {
    display: inline-block !important;
    font-size: .78rem !important;
    color: var(--tbo-green) !important;
    font-weight: 600 !important;
    background: var(--tbo-green-light) !important;
    border: 1px solid #c3e6d0 !important;
    padding: 3px 9px !important;
    border-radius: 0 !important;
    line-height: 1.5 !important;
    white-space: nowrap !important;
}

#tbo-wrap .tbo-price {
    font-size: .9rem !important;
    font-weight: 700 !important;
    color: var(--tbo-text) !important;
}

/* WooCommerce price HTML overrides */
#tbo-wrap .tbo-price .woocommerce-Price-amount       { font-size: inherit !important; font-weight: inherit !important; color: inherit !important; }
#tbo-wrap .tbo-price .woocommerce-Price-currencySymbol { font-size: inherit !important; }

#tbo-wrap .tbo-subtotal {
    font-weight: 700 !important;
    font-size: .9rem !important;
    color: var(--tbo-text) !important;
    display: block !important;
}

#tbo-wrap .tbo-subtotal--dash {
    color: var(--tbo-text-muted) !important;
    font-weight: 400 !important;
}

#tbo-wrap .tbo-oos-label {
    color: var(--tbo-text-muted) !important;
    display: block !important;
    text-align: center !important;
}

/* ═══════════════════════════════════════════════════
   8. PRODUCT IMAGE TILE
═══════════════════════════════════════════════════ */
#tbo-wrap .tbo-img-wrap {
    width: 42px !important;
    height: 42px !important;
    border-radius: var(--tbo-radius-sm) !important;
    overflow: hidden !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
}

#tbo-wrap .tbo-img-wrap.tbo-img--yellow  { background: var(--tbo-yellow-bg)  !important; }
#tbo-wrap .tbo-img-wrap.tbo-img--mint    { background: var(--tbo-mint-bg)    !important; }
#tbo-wrap .tbo-img-wrap.tbo-img--neutral { background: var(--tbo-neutral-bg) !important; }

#tbo-wrap .tbo-img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    display: block !important;
}

/* ═══════════════════════════════════════════════════
   9. STOCK BADGE
═══════════════════════════════════════════════════ */
#tbo-wrap .tbo-badge {
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    padding: 4px 10px 4px 7px !important;
    border-radius: 0 !important;
    font-size: .74rem !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    text-transform: none !important;
    border: none !important;
    margin: 0 !important;
    letter-spacing: 0 !important;
    background-image: none !important;
}

#tbo-wrap .tbo-badge__dot {
    width: 7px !important;
    height: 7px !important;
    border-radius: 50% !important;
    display: inline-block !important;
    flex-shrink: 0 !important;
}

#tbo-wrap .tbo-badge--instock { background: var(--tbo-green-badge) !important; color: var(--tbo-green) !important; }
#tbo-wrap .tbo-badge--instock .tbo-badge__dot { background: var(--tbo-green) !important; }
#tbo-wrap .tbo-badge--oos { background: #fee2e2 !important; color: var(--tbo-red) !important; }

/* ═══════════════════════════════════════════════════
   10. QUANTITY STEPPER
═══════════════════════════════════════════════════ */
#tbo-wrap .tbo-stepper {
    display: inline-flex !important;
    align-items: center !important;
    border: 1.5px solid var(--tbo-border) !important;
    border-radius: var(--tbo-radius-sm) !important;
    overflow: hidden !important;
    height: 36px !important;
    background: var(--tbo-white) !important;
    transition: border-color .15s, box-shadow .15s;
}

#tbo-wrap .tbo-stepper__btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 32px !important;
    height: 36px !important;
    background: transparent !important;
    border: none !important;
    cursor: pointer !important;
    padding: 0 !important;
    flex-shrink: 0 !important;
    transition: background .1s !important;
    outline: none !important;
    box-shadow: none !important;
    -webkit-appearance: none !important;
    border-radius: 0 !important;
}

#tbo-wrap .tbo-stepper__btn:hover {
    background: var(--tbo-green-light) !important;
}

#tbo-wrap .tbo-stepper__btn svg {
    width: 13px !important;
    height: 13px !important;
    stroke: var(--tbo-text-muted) !important;
    fill: none !important;
    display: block !important;
    flex-shrink: 0 !important;
    transition: stroke .1s !important;
}

#tbo-wrap .tbo-stepper__btn:hover svg { stroke: var(--tbo-green) !important; }

#tbo-wrap .tbo-stepper__input {
    width: 40px !important;
    height: 34px !important;
    text-align: center !important;
    border: none !important;
    border-left: 1.5px solid var(--tbo-border) !important;
    border-right: 1.5px solid var(--tbo-border) !important;
    font-size: .875rem !important;
    font-weight: 600 !important;
    color: var(--tbo-text) !important;
    background: var(--tbo-white) !important;
    outline: none !important;
    padding: 0 !important;
    box-shadow: none !important;
    -moz-appearance: textfield !important;
    -webkit-appearance: none !important;
    border-radius: 0 !important;
    margin: 0 !important;
    display: block !important;
}

#tbo-wrap .tbo-stepper__input::-webkit-inner-spin-button,
#tbo-wrap .tbo-stepper__input::-webkit-outer-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
}

/* Active (qty > 0) */
#tbo-wrap .tbo-stepper--active {
    border-color: var(--tbo-green) !important;
    box-shadow: 0 0 0 2px rgba(30,92,56,.08) !important;
}

#tbo-wrap .tbo-stepper--active .tbo-stepper__input {
    border-left-color: var(--tbo-green) !important;
    border-right-color: var(--tbo-green) !important;
    color: var(--tbo-green) !important;
}

#tbo-wrap .tbo-stepper--active .tbo-stepper__btn svg { stroke: var(--tbo-green) !important; }

/* ═══════════════════════════════════════════════════
   11. SIDEBAR
═══════════════════════════════════════════════════ */
#tbo-wrap .tbo-sidebar {
    position: sticky;
    top: 24px;
}

#tbo-wrap .tbo-sidebar__inner {
    background: var(--tbo-white);
    border-radius: var(--tbo-radius);
    box-shadow: var(--tbo-shadow-card);
    border: 1px solid var(--tbo-border);
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 0;
}

#tbo-wrap .tbo-sidebar__header {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: .95rem !important;
    font-weight: 700 !important;
    color: var(--tbo-text) !important;
    margin: 0 0 16px 0;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--tbo-border);
}

#tbo-wrap .tbo-sidebar__header svg {
    width: 18px;
    height: 18px;
    stroke: var(--tbo-green);
    fill: none;
    flex-shrink: 0;
}

/* Empty state */
#tbo-wrap .tbo-summary-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 20px 0 28px;
    gap: 8px;
}

#tbo-wrap .tbo-summary-empty__icon {
    width: 56px;
    height: 56px;
    background: var(--tbo-alt-bg);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 4px;
    border: 1px solid var(--tbo-border);
}

#tbo-wrap .tbo-summary-empty__icon svg {
    width: 24px;
    height: 24px;
    stroke: var(--tbo-text-label);
    fill: none;
    display: block;
}

#tbo-wrap .tbo-summary-empty__text {
    font-weight: 600 !important;
    font-size: .9rem !important;
    color: var(--tbo-text) !important;
}

#tbo-wrap .tbo-summary-empty__hint {
    font-size: .8rem !important;
    color: var(--tbo-text-muted) !important;
    line-height: 1.45 !important;
}

/* Filled summary rows */
#tbo-wrap .tbo-summary-rows {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: 0 0 16px 0;
}

#tbo-wrap .tbo-summary-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 11px 0;
    border-bottom: 1px solid var(--tbo-border);
}

#tbo-wrap .tbo-summary-row--total {
    border-bottom: none !important;
    padding-top: 14px;
    padding-bottom: 4px;
}

#tbo-wrap .tbo-summary-label {
    font-size: .875rem !important;
    color: var(--tbo-text-muted) !important;
}

#tbo-wrap .tbo-summary-label--bold {
    font-weight: 700 !important;
    color: var(--tbo-text) !important;
    font-size: .95rem !important;
}

#tbo-wrap .tbo-summary-val {
    font-weight: 600 !important;
    font-size: .875rem !important;
    color: var(--tbo-text) !important;
}

#tbo-wrap .tbo-summary-val--green { color: var(--tbo-green) !important; font-weight: 700 !important; }
#tbo-wrap .tbo-summary-val--big   { font-size: 1.2rem !important; font-weight: 800 !important; letter-spacing: -0.02em !important; }

/* GST note */
#tbo-wrap .tbo-gst-note {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: var(--tbo-radius-sm);
    padding: 10px 12px;
    font-size: .8rem !important;
    color: #92400e !important;
    margin-bottom: 16px;
    line-height: 1.45;
}

#tbo-wrap .tbo-gst-note svg {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    stroke: #d97706;
    fill: none;
    margin-top: 1px;
}

/* CTA button */
#tbo-wrap .tbo-cta-btn {
    display: block !important;
    width: 100% !important;
    padding: 13px 18px !important;
    background: var(--tbo-green) !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: var(--tbo-radius) !important;
    font-size: .9rem !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    text-align: center !important;
    transition: background .15s, transform .1s, box-shadow .15s !important;
    line-height: 1.2 !important;
    box-shadow: 0 1px 3px rgba(30,92,56,.3) !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    margin: 0 0 10px 0 !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    background-image: none !important;
}

#tbo-wrap .tbo-cta-btn:hover:not(:disabled) {
    background: var(--tbo-green-dark) !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 3px 8px rgba(30,92,56,.3) !important;
}

#tbo-wrap .tbo-cta-btn:active:not(:disabled) { transform: translateY(0) !important; }

#tbo-wrap .tbo-cta-btn:disabled {
    background: #d1d5db !important;
    color: #9ca3af !important;
    cursor: not-allowed !important;
    box-shadow: none !important;
    transform: none !important;
}

/* Clear button */
#tbo-wrap .tbo-clear-btn {
    display: block !important;
    width: 100% !important;
    padding: 8px 18px !important;
    background: transparent !important;
    color: var(--tbo-text-muted) !important;
    border: none !important;
    font-size: .84rem !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    text-align: center !important;
    transition: color .12s !important;
    line-height: 1 !important;
    box-shadow: none !important;
    text-decoration: underline !important;
    margin: 0 0 16px 0 !important;
    -webkit-appearance: none !important;
}

#tbo-wrap .tbo-clear-btn:hover { color: var(--tbo-red) !important; }

/* Sidebar note */
#tbo-wrap .tbo-sidebar__note {
    font-size: .78rem !important;
    color: var(--tbo-text-muted) !important;
    line-height: 1.5 !important;
    margin: 0 !important;
    border-top: 1px solid var(--tbo-border);
    padding-top: 12px !important;
}

#tbo-wrap .tbo-sidebar__note strong { color: var(--tbo-text) !important; font-weight: 600 !important; }

/* ═══════════════════════════════════════════════════
   12. EMPTY SEARCH STATE
═══════════════════════════════════════════════════ */
#tbo-wrap .tbo-empty-search {
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
    gap: 12px;
    color: var(--tbo-text-muted);
}

#tbo-wrap .tbo-empty-search.tbo-visible { display: flex !important; }

#tbo-wrap .tbo-empty-search svg {
    width: 36px;
    height: 36px;
    stroke: #d1d5db;
    fill: none;
}

#tbo-wrap .tbo-empty-search p { font-size: .9rem !important; }

/* ═══════════════════════════════════════════════════
   13. LOADING SPINNER
═══════════════════════════════════════════════════ */
@keyframes tbo-spin { to { transform: rotate(360deg); } }

#tbo-wrap .tbo-cta-btn--loading::after {
    content: '';
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255,255,255,.4);
    border-top-color: #fff;
    border-radius: 50%;
    animation: tbo-spin .5s linear infinite;
    vertical-align: middle;
    margin-left: 8px;
}

/* ═══════════════════════════════════════════════════
   14. TOAST
═══════════════════════════════════════════════════ */
#tbo-wrap .tbo-toast {
    position: fixed !important;
    bottom: 24px !important;
    right: 24px !important;
    background: var(--tbo-text) !important;
    color: #fff !important;
    padding: 12px 20px !important;
    border-radius: var(--tbo-radius) !important;
    font-size: .875rem !important;
    font-weight: 500 !important;
    z-index: 999999 !important;
    box-shadow: 0 8px 24px rgba(0,0,0,.2) !important;
    opacity: 0 !important;
    transform: translateY(12px) !important;
    transition: opacity .2s, transform .2s !important;
    pointer-events: none !important;
    max-width: 320px !important;
    line-height: 1.4 !important;
}

#tbo-wrap .tbo-toast--show    { opacity: 1 !important; transform: translateY(0) !important; }
#tbo-wrap .tbo-toast--success { background: var(--tbo-green) !important; }
#tbo-wrap .tbo-toast--error   { background: var(--tbo-red)   !important; }

/* ═══════════════════════════════════════════════════
   15. FILTER VISIBILITY
═══════════════════════════════════════════════════ */
#tbo-wrap .tbo-product-row.tbo-hidden,
#tbo-wrap .tbo-group-row.tbo-hidden { display: none !important; }

/* ═══════════════════════════════════════════════════
   16. RESPONSIVE
═══════════════════════════════════════════════════ */
@media (max-width: 768px) {
    #tbo-wrap .tbo-table-outer { overflow-x: auto; }
    #tbo-wrap .tbo-table       { min-width: 580px; }
    #tbo-wrap .tbo-header__title { font-size: 1.4rem !important; }
}


/* ═══════════════════════════════════════════════════════════
   WHOLESALE ACCESS GATE PAGE
   Uses same token system as the bulk order table.
═══════════════════════════════════════════════════════════ */
#tbo-gate-wrap {
    min-height: 60vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 48px 20px;
    background: transparent;
}

.tbo-gate-card {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    box-shadow: 0 1px 4px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.04);
    max-width: 480px;
    width: 100%;
    padding: 40px 36px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
}

/* Icon circle */
.tbo-gate-icon {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
    flex-shrink: 0;
}

.tbo-gate-icon svg {
    width: 32px;
    height: 32px;
}

.tbo-gate-icon--lock {
    background: #eaf3ed;
    border: 1px solid #c3e6d0;
}

.tbo-gate-icon--lock svg { stroke: #1e5c38; }

.tbo-gate-icon--pending {
    background: #fffbeb;
    border: 1px solid #fde68a;
}

.tbo-gate-icon--pending svg { stroke: #d97706; }

/* Heading */
.tbo-gate-title {
    font-size: 1.35rem !important;
    font-weight: 700 !important;
    color: #111827 !important;
    margin: 0 0 12px !important;
    padding: 0 !important;
    line-height: 1.2 !important;
    text-transform: none !important;
    letter-spacing: -0.01em !important;
    background: none !important;
    border: none !important;
}

/* Description */
.tbo-gate-desc {
    font-size: .9rem !important;
    color: #6b7280 !important;
    line-height: 1.6 !important;
    margin: 0 0 28px !important;
    max-width: 380px;
}

/* Buttons */
.tbo-gate-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
}

.tbo-gate-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    width: 100% !important;
    padding: 13px 20px !important;
    font-size: .9rem !important;
    font-weight: 600 !important;
    border-radius: 0 !important;
    cursor: pointer;
    text-decoration: none !important;
    transition: background .15s, color .15s, box-shadow .15s, transform .1s;
    line-height: 1.2 !important;
    border: none !important;
}

.tbo-gate-btn svg {
    width: 17px;
    height: 17px;
    flex-shrink: 0;
    stroke: currentColor;
}

.tbo-gate-btn--primary {
    background: #1e5c38 !important;
    color: #ffffff !important;
    box-shadow: 0 1px 3px rgba(30,92,56,.3);
}

.tbo-gate-btn--primary:hover {
    background: #174a2e !important;
    transform: translateY(-1px);
    box-shadow: 0 3px 8px rgba(30,92,56,.3);
}

.tbo-gate-btn--secondary {
    background: #eaf3ed !important;
    color: #1e5c38 !important;
    border: 1px solid #c3e6d0 !important;
}

.tbo-gate-btn--secondary:hover {
    background: #d6ecde !important;
}

.tbo-gate-btn--ghost {
    background: transparent !important;
    color: #9ca3af !important;
    font-size: .8rem !important;
    font-weight: 400 !important;
    padding: 6px 0 !important;
    text-decoration: underline !important;
}

.tbo-gate-btn--ghost:hover { color: #dc2626 !important; }

/* Enqueue the gate CSS on all pages (needed for template_redirect output) */

@media (max-width: 480px) {
    .tbo-gate-card { padding: 28px 20px; }
}
