/* ─── Ikan Quote Builder ───────────────────────────────────────────────────── */

.ikb-wrap { font-family: Arial, sans-serif; margin: 8px 0 16px; }

#ikb-loading-msg {
    padding: 12px; background: #f0f4ff; border: 1px solid #c0d0ff;
    border-radius: 4px; color: #0055aa; font-size: 14px; margin-bottom: 12px;
}

/* Table wrapper – no overflow so dropdown can escape downward */
.ikb-table-wrap { overflow-x: auto; min-height: 480px; }

#ikb-line-items {
    width: 100%; border-collapse: collapse; font-size: 12px; min-width: 640px;
}

#ikb-line-items thead th {
    background: #0055aa; color: #fff; padding: 7px 6px;
    text-align: left; white-space: nowrap; font-weight: 600; font-size: 11px;
    letter-spacing: .3px; text-transform: uppercase;
}
#ikb-line-items thead th:first-child  { text-align: center; width: 48px; }
#ikb-line-items thead th:nth-child(2) { width: 130px; }
/* Description column is flexible — takes remaining space */
#ikb-line-items thead th:nth-child(4),
#ikb-line-items thead th:nth-child(5),
#ikb-line-items thead th:nth-child(6),
#ikb-line-items thead th:nth-child(7) { text-align: right; width: 82px; }
#ikb-line-items thead th:nth-child(8) { width: 72px; }
#ikb-line-items thead th:last-child   { width: 30px; }

#ikb-line-items tbody tr:nth-child(even) { background: #f7f9ff; }
#ikb-line-items tbody tr:hover           { background: #eef2ff; }

/* Cell inputs */
.ikb-cell {
    border: 1px solid #ccc; border-radius: 3px; padding: 5px 7px;
    font-size: 13px; width: 100%; box-sizing: border-box; background: #fff;
}
.ikb-cell:focus { outline: none; border-color: #0055aa; box-shadow: 0 0 0 2px rgba(0,85,170,.15); }
.ikb-cell-qty   { width: 52px; text-align: center; }
.ikb-cell-sku   { width: 100%; min-width: 110px; }

.ikb-cell-readonly { color: #333; font-size: 13px; display: block; padding: 5px 0; }

.ikb-price-col  { text-align: right; padding: 0 10px; white-space: nowrap; }
.ikb-cell-price { color: #333; font-variant-numeric: tabular-nums; }
#ikb-line-items tbody td:nth-child(7) .ikb-cell-price { font-weight: 600; color: #003888; }

/* SKU cell – needed for absolute fallback but fixed overrides */
.ikb-sku-cell { position: relative; min-width: 200px; }

/* Dropdown – appended to body, absolute so themes can't break it */
.ikb-sku-dropdown {
    display: none;
    position: absolute;
    z-index: 999999;
    background: #fff;
    border: 1px solid #0055aa;
    border-radius: 4px;
    list-style: none;
    margin: 0; padding: 0;
    min-width: 500px;
    max-height: 360px;
    overflow-y: auto;
    box-shadow: 0 6px 20px rgba(0,0,0,.2);
}
.ikb-sku-dropdown li {
    padding: 8px 12px; cursor: pointer; font-size: 13px;
    line-height: 1.4; border-bottom: 1px solid #f0f0f0; color: #222;
}
.ikb-sku-dropdown li:last-child { border-bottom: none; }
.ikb-sku-dropdown li:hover,
.ikb-sku-dropdown li.ikb-active { background: #e8efff; color: #003888; }
.ikb-sku-dropdown li strong     { color: #0055aa; }
.ikb-sku-dropdown li.ikb-no-results { color: #888; cursor: default; font-style: italic; }

/* Status badges */
.ikb-status { display: inline-block; font-size: 11px; font-weight: 600;
    padding: 2px 6px; border-radius: 3px; white-space: nowrap;
    text-transform: uppercase; letter-spacing: .3px; }
.ikb-status-instock { background: #d4f7d4; color: #1a6e1a; }
.ikb-status-limited { background: #fff3cc; color: #7a5900; }
.ikb-status-out     { background: #fdd;    color: #880000; }
.ikb-status-eol     { background: #eee;    color: #666;    }

/* Remove button */
.ikb-remove-row {
    background: none; border: none; color: #cc0000; font-size: 18px;
    cursor: pointer; padding: 2px 6px; opacity: .7; transition: opacity .15s;
}
.ikb-remove-row:hover { opacity: 1; }

/* Add row button */
#ikb-add-row {
    margin-top: 10px; background: #0055aa; color: #fff; border: none;
    border-radius: 4px; padding: 7px 16px; font-size: 13px;
    cursor: pointer; font-weight: 600; transition: background .15s;
}
#ikb-add-row:hover    { background: #003888; }
#ikb-add-row:disabled { background: #aac4e8; cursor: not-allowed; }

/* Totals panel */
.ikb-totals-panel  { margin-top: 16px; display: flex; justify-content: flex-end; }
.ikb-totals-table  { width: 280px; border-collapse: collapse; font-size: 13px; }
.ikb-totals-table td { padding: 5px 10px; border-bottom: 1px solid #eee; }
.ikb-totals-table td:first-child { color: #555; font-weight: 600; text-align: right; }
.ikb-totals-table td:last-child  { text-align: right; font-variant-numeric: tabular-nums; min-width: 100px; }
.ikb-totals-total td { background: #0055aa; color: #fff !important; font-size: 15px; font-weight: 700; border: none; }

/* Line-items validation error injected inline below the table */
.ikb-line-items-error {
    background: #fff3f3;
    border: 1px solid #c00;
    border-left: 4px solid #c00;
    padding: 10px 14px;
    margin-top: 10px;
    border-radius: 3px;
    color: #c00;
    font-we