/* Infinite Scroll Category Products - v7 */
.iscp-app {
    --iscp-bg: #fffaf7;
    --iscp-surface: #ffeaf9e8;
    --iscp-surface-solid: #fff;
    --iscp-text: #5e3a3a;
    --iscp-muted: #866a6a;
    --iscp-accent: #e0738b;
    --iscp-accent-soft: #ffd0f1;
    --iscp-border: #ffcdd4;
    --iscp-shadow: rgba(0, 0, 0, .06);
    --iscp-success: #2e6b3e;
    --iscp-danger: #b0455e;
    color: var(--iscp-text);
}

.iscp-app.iscp-theme-dark {
    --iscp-bg: #151417;
    --iscp-surface: #211f24;
    --iscp-surface-solid: #2b282e;
    --iscp-text: #f6eef1;
    --iscp-muted: #c4b7bc;
    --iscp-accent: #f08ca5;
    --iscp-accent-soft: #4a2b37;
    --iscp-border: #57404a;
    --iscp-shadow: rgba(0, 0, 0, .28);
    --iscp-success: #8ed2a8;
    --iscp-danger: #ff98ae;
}

.iscp-products-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 22px 0 30px;
}

@media (min-width: 768px) {
    .iscp-products-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.iscp-product-card {
    background: var(--iscp-surface);
    border-radius: 20px;
    padding: 6px;
    box-shadow: 0 8px 20px var(--iscp-shadow);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
    text-align: center;
    border: 1px solid var(--iscp-border);
    position: relative;
    min-width: 0;
}

.iscp-product-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 28px var(--iscp-shadow);
    border-color: var(--iscp-accent);
}

.iscp-product-title-link { text-decoration: none !important; }
.iscp-product-image { cursor: zoom-in; position: relative; overflow: hidden; border-radius: 16px; }
.iscp-product-image img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 16px;
    background: var(--iscp-surface-solid);
    transition: transform .25s ease;
    display: block;
}
.iscp-product-card:hover .iscp-product-image img { transform: scale(1.015); }

.iscp-sale-badge {
    position: absolute;
    top: 8px;
    right: 8px;
    background: var(--iscp-accent);
    color: #fff;
    padding: 4px 10px;
    border-radius: 30px;
    font-size: .75rem;
    font-weight: 700;
    box-shadow: 0 2px 8px rgba(0,0,0,.18);
    z-index: 5;
}

.iscp-product-title {
    font-size: 1rem;
    font-weight: 600;
    margin: 12px 0 6px;
    color: var(--iscp-text);
    line-height: 1.45;
}

.iscp-product-price {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--iscp-accent);
    margin: 8px 0;
    min-height: 28px;
}
.iscp-product-price del { opacity: .65; }

/* Variation dropdowns */
.iscp-variation-select,
.iscp-sort-select,
.iscp-search-input,
.iscp-attribute-select {
    border: 1px solid var(--iscp-border) !important;
    background: var(--iscp-surface-solid) !important;
    color: var(--iscp-text) !important;
    box-shadow: none !important;
    font-family: inherit;
}

.iscp-variation-select {
    width: 100%;
    padding: 8px 12px;
    margin: 5px 0;
    border-radius: 40px;
    font-size: .9rem;
    cursor: pointer;
}

.iscp-variation-select:focus,
.iscp-sort-select:focus,
.iscp-search-input:focus,
.iscp-attribute-select:focus {
    outline: none;
    border-color: var(--iscp-accent) !important;
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--iscp-accent) 20%, transparent) !important;
}

.iscp-instock-option { color: #2e8b57 !important; }
.iscp-outofstock-option { color: #c94c62 !important; }

/* Variation selectable buttons */
.iscp-variation-group { margin: 5px 0 8px; }
.iscp-variation-label { display:block; font-size:.82rem; font-weight:600; margin-bottom:5px; color:var(--iscp-text); }
.iscp-variation-buttons { display:flex; flex-wrap:wrap; gap:6px; }
.iscp-variation-option { appearance:none; border:1px solid var(--iscp-border) !important; background:var(--iscp-surface-solid) !important; color:var(--iscp-text) !important; border-radius:8px !important; padding:7px 10px !important; min-width:44px; cursor:pointer; font:inherit; transition:.15s ease; }
.iscp-variation-option:hover:not(:disabled), .iscp-variation-option.is-selected { border-color:var(--iscp-accent) !important; background:var(--iscp-accent-soft) !important; box-shadow:0 0 0 1px var(--iscp-accent) inset; }
.iscp-variation-option:disabled { opacity:.45; cursor:not-allowed; text-decoration:line-through; }

/* Purchase row / quantity */
.iscp-purchase-row {
    display: grid;
    grid-template-columns: minmax(86px, .78fr) minmax(0, 1.45fr);
    gap: 6px;
    align-items: stretch;
    margin-top: 6px;
}

.iscp-quantity {
    display: grid;
    grid-template-columns: 28px minmax(30px, 1fr) 28px;
    align-items: stretch;
    border: 1px solid var(--iscp-border);
    border-radius: 40px;
    background: var(--iscp-surface-solid);
    overflow: hidden;
    min-height: 38px;
}

.iscp-qty-btn,
.iscp-qty-input {
    border: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    color: var(--iscp-text) !important;
    min-width: 0 !important;
    box-shadow: none !important;
    text-align: center;
}
.iscp-qty-btn { cursor: pointer; font-size: 1.15rem; font-weight: 700; }
.iscp-qty-btn:hover { background: var(--iscp-accent-soft) !important; }
.iscp-qty-input { width: 100% !important; font-size: .85rem; appearance: textfield; -moz-appearance: textfield; }
.iscp-qty-input::-webkit-inner-spin-button,
.iscp-qty-input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

.iscp-add-to-cart-btn {
    background: var(--iscp-accent-soft) !important;
    border: 1px solid var(--iscp-border) !important;
    padding: 7px 8px !important;
    border-radius: 40px !important;
    font-weight: 600 !important;
    font-size: .88rem !important;
    color: var(--iscp-text) !important;
    cursor: pointer;
    width: 100%;
    min-height: 38px;
    margin: 0 !important;
    transition: .2s;
    line-height: 1.2 !important;
}
.iscp-add-to-cart-btn:hover:not(:disabled) { border-color: var(--iscp-accent) !important; transform: translateY(-1px); }
.iscp-add-to-cart-btn:disabled { opacity: .55; cursor: not-allowed; }
.iscp-add-to-cart-btn.added-success { background: #c8e6d9 !important; border-color: #9fd3b0 !important; color: #2e6b3e !important; }
.iscp-button-loading { opacity: .65; }

.iscp-added-feedback { margin-top: 5px; font-size: .8rem; min-height: 20px; font-weight: 500; }
.iscp-success-message { color: var(--iscp-success); }
.iscp-error-message { color: var(--iscp-danger); }

/* Toolbar */
.iscp-toolbar {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: color-mix(in srgb, var(--iscp-bg) 94%, transparent);
    backdrop-filter: blur(12px);
    border-radius: 28px;
    padding: 10px 12px;
    margin: 0 0 20px;
    box-shadow: 0 4px 15px var(--iscp-shadow);
    border: 1px solid var(--iscp-border);
    transition: opacity .2s ease;
}

.iscp-toolbar-main {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.iscp-filters { display: flex; align-items: center; gap: 8px; }
.filter-label {
    font-weight: 600;
    color: var(--iscp-text);
    background: var(--iscp-surface-solid);
    padding: 7px 11px;
    border-radius: 40px;
    font-size: .82rem;
}

.iscp-sort-select,
.iscp-attribute-select {
    padding: 8px 13px !important;
    border-radius: 40px !important;
    font-size: .82rem !important;
    height: 38px !important;
    cursor: pointer;
    margin: 0 !important;
}

.iscp-search { position: relative; display: flex; align-items: center; gap: 8px; }
.iscp-search-input {
    padding: 8px 36px 8px 14px !important;
    border-radius: 40px !important;
    font-size: .84rem !important;
    width: 220px;
    height: 38px !important;
    margin: 0 !important;
}
.iscp-search-clear {
    position: absolute;
    right: 10px;
    background: none !important;
    border: none !important;
    padding: 0 !important;
    color: var(--iscp-accent) !important;
    cursor: pointer;
    width: 20px;
    height: 20px;
    line-height: 20px;
}
.iscp-search-loader { font-size: .72rem; color: var(--iscp-accent); }

.iscp-attribute-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: flex-end;
    margin-top: 9px;
    padding-top: 9px;
    border-top: 1px dashed var(--iscp-border);
}
.iscp-attribute-filter { display: flex; align-items: center; gap: 6px; margin: 0; }
.iscp-attribute-filter > span { font-size: .78rem; color: var(--iscp-muted); font-weight: 600; }

.iscp-reset-filters,
.iscp-load-more-btn {
    background: var(--iscp-accent) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 40px !important;
    cursor: pointer;
    font-family: inherit;
    font-weight: 700;
}
.iscp-reset-filters { padding: 9px 14px !important; font-size: .78rem; }
.iscp-load-more-container { text-align: center; margin: 30px 0; }
.iscp-load-more-btn { padding: 10px 25px !important; }
.iscp-load-more-btn:disabled { opacity: .55; cursor: wait; }
.iscp-loader { text-align: center; padding: 14px; font-size: .85rem; color: var(--iscp-accent); font-weight: 600; }

.iscp-no-products {
    grid-column: 1 / -1;
    text-align: center;
    padding: 30px;
    background: var(--iscp-surface);
    border: 1px solid var(--iscp-border);
    border-radius: 24px;
    color: var(--iscp-danger);
}

.iscp-is-loading .iscp-products-grid { opacity: .62; pointer-events: none; }

/* Lightbox */
.iscp-lightbox-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.86);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 999999;
    cursor: zoom-out;
    opacity: 0;
    transition: opacity .3s;
}
.iscp-lightbox-overlay.active { opacity: 1; }
.iscp-lightbox-img { max-width: 92%; max-height: 92%; object-fit: contain; border-radius: 12px; box-shadow: 0 0 30px rgba(0,0,0,.5); transform: scale(.96); transition: transform .3s; }
.iscp-lightbox-overlay.active .iscp-lightbox-img { transform: scale(1); }
.iscp-lightbox-close { position: absolute; top: 18px; right: 24px; color: #fff !important; background: transparent !important; border: 0 !important; font-size: 40px !important; cursor: pointer; z-index: 2; }

@media (max-width: 767px) {
    .iscp-toolbar { position: relative; border-radius: 22px; }
    .iscp-toolbar-main { align-items: stretch; }
    .iscp-filters { width: 100%; justify-content: space-between; }
    .iscp-search { width: 100%; }
    .iscp-search-input { width: 100%; }
    .iscp-attribute-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .iscp-attribute-filter { display: block; }
    .iscp-attribute-filter > span { display: block; margin: 0 0 4px 8px; }
    .iscp-attribute-select { width: 100%; }
    .iscp-reset-filters { grid-column: 1 / -1; width: 100%; }
}

@media (max-width: 480px) {
    .iscp-products-grid { gap: 8px; }
    .iscp-product-title { font-size: .82rem; }
    .iscp-product-price { font-size: .92rem; }
    .iscp-variation-select { font-size: .72rem; padding: 6px 8px; }
    .iscp-purchase-row { grid-template-columns: 82px minmax(0, 1fr); gap: 4px; }
    .iscp-quantity { grid-template-columns: 24px minmax(28px, 1fr) 24px; min-height: 34px; }
    .iscp-add-to-cart-btn { font-size: .72rem !important; min-height: 34px; padding: 5px !important; }
}

/* v7.4 - true viewport image lazy loading + persistent cart status */
.iscp-product-image {
    background: var(--iscp-surface-solid);
}
.iscp-product-image img.iscp-lazy-image {
    opacity: 0;
}
.iscp-product-image img.iscp-lazy-image.iscp-image-loaded {
    opacity: 1;
    transition: opacity .2s ease, transform .25s ease;
}
.iscp-cart-status-line {
    display: block;
    margin-top: 5px;
    padding: 6px 8px;
    border-radius: 9px;
    background: color-mix(in srgb, var(--iscp-success) 10%, transparent);
    line-height: 1.55;
    text-align: right;
    overflow-wrap: anywhere;
}

/* v7.5 - category filter */
.iscp-category-filter-row{
    display:flex;
    align-items:center;
    gap:8px;
    margin-top:9px;
    padding-top:9px;
    border-top:1px dashed var(--iscp-border);
}
.iscp-category-filter{
    display:flex;
    align-items:center;
    gap:8px;
    margin:0;
}
.iscp-category-filter>span{
    font-size:.78rem;
    color:var(--iscp-muted);
    font-weight:700;
}
.iscp-category-select{
    min-width:190px;
    padding:8px 13px!important;
    border-radius:40px!important;
    font-size:.82rem!important;
    height:38px!important;
    cursor:pointer;
    margin:0!important;
    border:1px solid var(--iscp-border)!important;
    background:var(--iscp-surface-solid)!important;
    color:var(--iscp-text)!important;
}
.iscp-category-select:focus{
    outline:none;
    border-color:var(--iscp-accent)!important;
    box-shadow:0 0 0 2px color-mix(in srgb,var(--iscp-accent) 20%,transparent)!important;
}
@media(max-width:767px){
    .iscp-category-filter-row{display:block}
    .iscp-category-filter{display:block}
    .iscp-category-filter>span{display:block;margin:0 0 4px 8px}
    .iscp-category-select{width:100%}
}


/* Category navigation */
.iscp-category-filter-row{margin:12px 0 18px}
.iscp-category-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:9px;align-items:stretch}
.iscp-category-button,.iscp-category-more{appearance:none;display:flex;align-items:center;justify-content:center;min-height:42px;padding:9px 14px;border:1px solid var(--iscp-border)!important;border-radius:11px!important;background:var(--iscp-surface-solid)!important;color:var(--iscp-text)!important;font:inherit;font-size:.88rem;font-weight:600;line-height:1.35;text-align:center;cursor:pointer;transition:background .18s,border-color .18s,color .18s;box-shadow:none!important}
.iscp-category-button:hover,.iscp-category-button.is-selected{background:var(--iscp-accent)!important;border-color:var(--iscp-accent)!important;color:#fff!important}
.iscp-category-button.is-selected{box-shadow:0 3px 10px var(--iscp-shadow)!important}
.iscp-category-layout-grid:not(.is-expanded) .iscp-category-button.is-overflow{display:none}
.iscp-category-more{border-style:dashed!important;background:transparent!important}
.iscp-category-layout-slider{display:flex;overflow-x:auto;gap:9px;padding:2px 1px 8px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
.iscp-category-layout-slider .iscp-category-button{flex:0 0 auto;min-width:110px;scroll-snap-align:start}
.iscp-category-layout-slider .iscp-category-more{display:none}
.iscp-no-price-message{margin:8px 0;padding:9px 10px;border-radius:10px;background:var(--iscp-surface-solid);color:var(--iscp-text);font-size:.9rem;line-height:1.5}
.iscp-quantity{grid-template-columns:24px minmax(24px,1fr) 24px;min-height:32px}
.iscp-qty-btn,.iscp-qty-input{font-size:.82rem!important;min-height:30px!important}
.iscp-qty-input{font-size:.78rem!important}


/* Category layout options 7.7.0 */
.iscp-category-buttons.iscp-category-layout-slider,
.iscp-category-buttons.iscp-category-layout-slider-2row {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: clamp(132px, 22vw, 176px);
    grid-template-rows: minmax(42px, auto);
    grid-template-columns: none;
    align-items: stretch;
    overflow-x: auto;
    overflow-y: hidden;
    gap: 10px;
    padding: 3px 48px 12px 2px;
    margin-right: -1px;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 8px;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
    scrollbar-color: var(--iscp-border) transparent;
    position: relative;
}
.iscp-category-buttons.iscp-category-layout-slider .iscp-category-button,
.iscp-category-buttons.iscp-category-layout-slider-2row .iscp-category-button {
    min-width: 0;
    width: 100%;
    min-height: 44px;
    height: 100%;
    scroll-snap-align: start;
    white-space: normal;
    overflow-wrap: anywhere;
}
.iscp-category-buttons.iscp-category-layout-slider-2row {
    grid-template-rows: repeat(2, minmax(44px, auto));
    grid-auto-rows: minmax(44px, auto);
    grid-auto-columns: clamp(138px, 23vw, 184px);
    padding-right: 58px;
}
.iscp-category-buttons.iscp-category-layout-slider-2row .iscp-category-button {
    min-height: 46px;
}
/* A permanently visible edge-peek hints that more categories are available. */
.iscp-category-buttons.iscp-category-layout-slider::after,
.iscp-category-buttons.iscp-category-layout-slider-2row::after {
    content: "";
    position: sticky;
    right: 0;
    align-self: stretch;
    width: 1px;
    min-height: 1px;
    margin-left: -1px;
    pointer-events: none;
}
.iscp-category-buttons.iscp-category-layout-wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}
.iscp-category-buttons.iscp-category-layout-wrap .iscp-category-button {
    flex: 1 1 125px;
    min-width: 0;
}
.iscp-category-buttons.iscp-category-layout-wrap .iscp-category-more {
    flex: 0 0 auto;
}
@media (max-width: 600px) {
    .iscp-category-buttons.iscp-category-layout-slider {
        grid-auto-columns: minmax(118px, 42vw);
        padding-right: 42px;
    }
    .iscp-category-buttons.iscp-category-layout-slider-2row {
        grid-auto-columns: minmax(122px, 44vw);
        padding-right: 48px;
        gap: 8px;
    }
    .iscp-category-buttons.iscp-category-layout-wrap .iscp-category-button {
        flex-basis: 105px;
        padding: 8px 10px;
        font-size: .82rem;
    }
}


/* Floating category picker */
.iscp-floating-category-picker { position: relative; z-index: 50; }
.iscp-floating-category-trigger {
    position: fixed; right: 22px; bottom: 22px; z-index: 9998;
    display: inline-flex; align-items: center; justify-content: center; gap: 9px;
    min-height: 48px; padding: 12px 18px; border: 0; border-radius: 999px;
    background: var(--iscp-accent, #e0738b); color: #fff; font: inherit; font-weight: 700;
    box-shadow: 0 8px 26px rgba(0,0,0,.2); cursor: pointer;
}
.iscp-floating-category-trigger:hover { filter: brightness(.96); transform: translateY(-1px); }
.iscp-floating-category-backdrop { position: fixed; inset: 0; z-index: 9998; background: rgba(15,18,28,.45); }
.iscp-floating-category-backdrop[hidden], .iscp-floating-category-dialog[hidden] { display: none !important; }
.iscp-floating-category-dialog {
    position: fixed; z-index: 9999; right: 22px; bottom: 82px; width: min(390px, calc(100vw - 28px));
    max-height: min(72vh, 640px); display: flex; flex-direction: column; overflow: hidden;
    background: var(--iscp-surface-solid, #fff); color: var(--iscp-text, #333);
    border: 1px solid var(--iscp-border, #ddd); border-radius: 18px;
    box-shadow: 0 18px 60px rgba(0,0,0,.24);
}
.iscp-floating-category-header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 18px; border-bottom:1px solid var(--iscp-border,#ddd); }
.iscp-floating-category-close { width:34px; height:34px; border:0; border-radius:50%; background:var(--iscp-surface,#f5f5f5); color:inherit; font-size:25px; line-height:1; cursor:pointer; }
.iscp-floating-category-items { display:grid; grid-template-columns:1fr; gap:8px; padding:14px; overflow:auto; overscroll-behavior:contain; }
.iscp-floating-category-item { min-width:0; width:100%; text-align:left; padding:11px 13px; border:1px solid var(--iscp-border,#ddd); border-radius:11px; background:var(--iscp-surface,#fafafa); color:inherit; font:inherit; cursor:pointer; }
.iscp-floating-category-item:hover, .iscp-floating-category-item.is-selected { background:var(--iscp-accent,#e0738b); color:#fff; border-color:var(--iscp-accent,#e0738b); }
.iscp-floating-category-picker[data-layout="grid"] .iscp-floating-category-items { grid-template-columns:repeat(2,minmax(0,1fr)); }
.iscp-floating-category-picker[data-layout="bottom-sheet"] .iscp-floating-category-dialog { right:0; bottom:0; width:100%; max-height:78vh; border-radius:20px 20px 0 0; }
.iscp-floating-category-picker[data-layout="bottom-sheet"] .iscp-floating-category-trigger { bottom:18px; }
.iscp-floating-category-picker[data-layout="bottom-sheet"] .iscp-floating-category-items { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media (min-width: 760px) {
 .iscp-floating-category-picker[data-layout="panel"] .iscp-floating-category-items { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 480px) {
 .iscp-floating-category-trigger { right:14px; bottom:14px; min-height:44px; padding:10px 15px; }
 .iscp-floating-category-dialog { right:14px; bottom:70px; width:calc(100vw - 28px); }
 .iscp-floating-category-picker[data-layout="grid"] .iscp-floating-category-items,
 .iscp-floating-category-picker[data-layout="bottom-sheet"] .iscp-floating-category-items { grid-template-columns:repeat(2,minmax(0,1fr)); }
}


/* v7.8.2 compact toolbar and category controls */
.iscp-toolbar { padding: 7px 9px; border-radius: 16px; }
.iscp-toolbar-compact { justify-content: flex-start; gap: 8px; }
.iscp-toolbar-icon-actions { display:flex; align-items:center; gap:5px; flex:0 0 auto; }
.iscp-tool-toggle { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; padding:0!important; border:1px solid var(--iscp-border)!important; border-radius:9px!important; background:var(--iscp-surface-solid)!important; color:var(--iscp-text)!important; font-size:21px!important; line-height:1!important; cursor:pointer; box-shadow:none!important; }
.iscp-tool-toggle:hover,.iscp-tool-toggle[aria-expanded="true"] { background:var(--iscp-accent)!important; color:#fff!important; border-color:var(--iscp-accent)!important; }
.iscp-tool-panels { display:flex; flex:1 1 auto; min-width:0; align-items:center; gap:8px; }
.iscp-tool-panel[hidden] { display:none!important; }
.iscp-tool-panel { min-width:0; max-width:100%; }
.iscp-tool-panel .iscp-search-input { width:min(240px, 48vw); max-width:100%; }
.iscp-sort-panel-label { display:flex; align-items:center; gap:7px; font-size:.75rem; white-space:nowrap; }
.iscp-sort-panel-label .iscp-sort-select { max-width:220px; }
.iscp-category-buttons { grid-template-columns:repeat(auto-fit,minmax(76px,1fr)); gap:5px; }
.iscp-category-button,.iscp-category-more { min-height:30px; padding:5px 8px; border-radius:8px!important; font-size:.76rem; font-weight:500; line-height:1.2; }
.iscp-category-layout-slider .iscp-category-button { min-width:80px; }
.iscp-floating-category-trigger { width:54px; height:54px; min-height:54px; padding:0 8px; font-size:1rem; }
.iscp-floating-category-trigger-label { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.iscp-floating-category-trigger:has(.iscp-floating-category-trigger-label:not(:empty)) { width:auto; min-width:54px; max-width:min(190px, calc(100vw - 28px)); }
@media (max-width:767px) {
 .iscp-toolbar-compact { align-items:flex-start; }
 .iscp-tool-panels { flex-wrap:wrap; }
 .iscp-tool-panel .iscp-search-input { width:min(220px, calc(100vw - 105px)); }
 .iscp-sort-panel-label { align-items:flex-start; flex-direction:column; gap:4px; }
 .iscp-sort-panel-label .iscp-sort-select { width:min(230px, calc(100vw - 100px)); }
 .iscp-category-buttons { grid-template-columns:repeat(auto-fit,minmax(68px,1fr)); gap:4px; }
 .iscp-category-button,.iscp-category-more { min-height:28px; padding:4px 6px; font-size:.72rem; }
}


/* v7.8.3: viewport-level floating picker and aggressively compact, theme-isolated controls */
.iscp-floating-category-picker { position: static !important; z-index: 1000000 !important; }
.iscp-floating-category-trigger,
.iscp-floating-category-trigger:hover,
.iscp-floating-category-trigger:focus {
  position: fixed !important; right: 20px !important; bottom: 20px !important; z-index: 1000001 !important;
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  width: 54px !important; height: 54px !important; min-width: 54px !important; min-height: 54px !important;
  max-width: min(190px, calc(100vw - 28px)) !important; padding: 0 10px !important;
  margin: 0 !important; border: 0 !important; border-radius: 999px !important;
  box-sizing: border-box !important; font-size: 14px !important; line-height: 1 !important;
  box-shadow: 0 6px 22px rgba(0,0,0,.22) !important; transform: none;
}
.iscp-floating-category-backdrop { position: fixed !important; inset: 0 !important; z-index: 1000002 !important; background: rgba(15,18,28,.58) !important; backdrop-filter: blur(3px); }
.iscp-floating-category-dialog {
  position: fixed !important; z-index: 1000003 !important; top: 5vh !important; left: 5vw !important;
  right: auto !important; bottom: auto !important; width: 90vw !important; height: 90vh !important;
  max-width: none !important; max-height: 90vh !important; min-height: 0 !important;
  display: flex !important; flex-direction: column !important; box-sizing: border-box !important;
  overflow: hidden !important; border-radius: 20px !important; padding: 0 !important;
  background: var(--iscp-surface-solid,#fff) !important; box-shadow: 0 24px 80px rgba(0,0,0,.32) !important;
}
.iscp-floating-category-dialog[hidden] { display:none !important; }
.iscp-floating-category-header { flex: 0 0 auto !important; min-height: 56px !important; padding: 10px 16px !important; position: relative; }
.iscp-floating-category-close,
.iscp-floating-category-close:hover,
.iscp-floating-category-close:focus {
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  width:38px !important; height:38px !important; min-width:38px !important; min-height:38px !important;
  padding:0 !important; margin:0 !important; border:0 !important; border-radius:50% !important;
  font-size:27px !important; line-height:1 !important; box-shadow:none !important; cursor:pointer !important;
}
.iscp-floating-category-items {
  flex: 1 1 auto !important; min-height:0 !important; overflow-y:auto !important; overflow-x:hidden !important;
  overscroll-behavior:contain !important; scrollbar-width:thin; scrollbar-color:var(--iscp-accent,#e0738b) #edf0f4;
  display:grid !important; grid-template-columns:repeat(auto-fill,minmax(min(190px,100%),1fr)) !important;
  align-content:start !important; gap:10px !important; padding:16px !important;
}
.iscp-floating-category-items::-webkit-scrollbar { width:8px; }
.iscp-floating-category-items::-webkit-scrollbar-track { background:#edf0f4; border-radius:10px; }
.iscp-floating-category-items::-webkit-scrollbar-thumb { background:var(--iscp-accent,#e0738b); border-radius:10px; border:2px solid #edf0f4; }
.iscp-floating-category-item,
.iscp-floating-category-item:hover,
.iscp-floating-category-item:focus {
  appearance:none !important; -webkit-appearance:none !important; box-sizing:border-box !important;
  display:flex !important; align-items:center !important; justify-content:flex-start !important;
  width:100% !important; min-width:0 !important; min-height:38px !important; height:auto !important;
  margin:0 !important; padding:8px 11px !important; border:1px solid var(--iscp-border,#e2e5eb) !important;
  border-radius:10px !important; font-family:inherit !important; font-size:13px !important;
  font-weight:500 !important; line-height:1.35 !important; text-align:start !important;
  white-space:normal !important; box-shadow:none !important; text-transform:none !important;
}

/* Keep the category row and two tiny tool icons on one compact toolbar line. */
.iscp-toolbar { width:100% !important; max-width:100% !important; box-sizing:border-box !important; padding:5px 7px !important; margin-bottom:10px !important; border-radius:12px !important; }
.iscp-toolbar-main { display:contents !important; }
.iscp-category-filter-row { order:1 !important; flex:1 1 auto !important; min-width:0 !important; width:auto !important; margin:0 !important; }
.iscp-toolbar-icon-actions { order:2 !important; display:flex !important; flex:0 0 auto !important; gap:3px !important; }
.iscp-tool-panels { order:3 !important; display:flex !important; flex:0 1 auto !important; min-width:0 !important; gap:4px !important; }
.iscp-tool-toggle,
.iscp-tool-toggle:hover,
.iscp-tool-toggle:focus { appearance:none !important; -webkit-appearance:none !important; width:27px !important; height:27px !important; min-width:27px !important; min-height:27px !important; padding:0 !important; margin:0 !important; border-radius:7px !important; font-size:17px !important; line-height:1 !important; box-shadow:none !important; }
.iscp-tool-panel .iscp-search-input { width:min(180px,32vw) !important; height:30px !important; min-height:30px !important; padding:4px 28px 4px 8px !important; margin:0 !important; font-size:12px !important; border-radius:7px !important; box-sizing:border-box !important; }
.iscp-sort-panel-label { display:flex !important; align-items:center !important; gap:4px !important; margin:0 !important; font-size:11px !important; }
.iscp-sort-panel-label .iscp-sort-select { width:auto !important; max-width:150px !important; height:30px !important; min-height:30px !important; padding:3px 20px 3px 7px !important; margin:0 !important; font-size:11px !important; border-radius:7px !important; box-sizing:border-box !important; }
.iscp-category-buttons { display:flex !important; flex-wrap:wrap !important; align-items:center !important; gap:3px !important; min-width:0 !important; margin:0 !important; padding:0 !important; }
.iscp-category-button,
.iscp-category-more,
.iscp-category-button:hover,
.iscp-category-button:focus,
.iscp-category-more:hover,
.iscp-category-more:focus {
  appearance:none !important; -webkit-appearance:none !important; display:inline-flex !important; align-items:center !important; justify-content:center !important;
  width:auto !important; min-width:0 !important; min-height:25px !important; height:auto !important;
  margin:0 !important; padding:4px 7px !important; border-radius:6px !important; font-size:11px !important;
  font-weight:500 !important; line-height:1.2 !important; white-space:nowrap !important; box-shadow:none !important;
  text-transform:none !important; letter-spacing:normal !important;
}
@media (max-width:767px) {
 .iscp-toolbar { padding:4px !important; }
 .iscp-category-filter-row { flex:1 1 100% !important; order:1 !important; }
 .iscp-toolbar-icon-actions { order:2 !important; }
 .iscp-tool-panels { order:3 !important; flex:1 1 auto !important; flex-wrap:nowrap !important; }
 .iscp-tool-panel .iscp-search-input { width:min(150px,38vw) !important; }
 .iscp-sort-panel-label { flex-direction:row !important; align-items:center !important; }
 .iscp-sort-panel-label .iscp-sort-select { max-width:125px !important; }
 .iscp-category-buttons { gap:3px !important; }
 .iscp-category-button,.iscp-category-more { padding:4px 6px !important; font-size:10px !important; }
 .iscp-floating-category-dialog { top:5vh !important; left:5vw !important; width:90vw !important; height:90vh !important; max-height:90vh !important; border-radius:16px !important; }
 .iscp-floating-category-items { grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:7px !important; padding:10px !important; }
 .iscp-floating-category-trigger { right:14px !important; bottom:14px !important; }
}


/* v7.8.4: robust category slider and compact dropdown mode; isolate from theme button styles */
.iscp-app .iscp-category-filter-row { min-width:0; max-width:100%; }
.iscp-app .iscp-category-buttons.iscp-category-layout-slider {
    display:flex !important;
    flex-flow:row nowrap !important;
    align-items:stretch !important;
    width:100%; min-width:0; max-width:100%;
    overflow-x:auto !important; overflow-y:hidden !important;
    gap:7px !important; padding:3px 8px 10px 2px !important;
    margin:0 !important;
    scroll-snap-type:x mandatory !important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
    scrollbar-width:thin;
    scrollbar-color:var(--iscp-border,#ccc) transparent;
}
.iscp-app .iscp-category-buttons.iscp-category-layout-slider > .iscp-category-button {
    display:inline-flex !important; flex:0 0 auto !important;
    width:auto !important; min-width:105px !important; max-width:190px;
    min-height:34px !important; height:auto !important;
    padding:6px 10px !important; margin:0 !important;
    white-space:normal; scroll-snap-align:start;
}
.iscp-app .iscp-category-buttons.iscp-category-layout-slider-2row {
    display:grid !important;
    grid-auto-flow:column !important;
    grid-template-rows:repeat(2,minmax(34px,auto)) !important;
    grid-template-columns:none !important;
    grid-auto-columns:clamp(105px,20vw,160px) !important;
    width:100%; min-width:0; max-width:100%;
    overflow-x:auto !important; overflow-y:hidden !important;
    gap:7px !important; padding:3px 8px 10px 2px !important;
    margin:0 !important;
    scroll-snap-type:x mandatory !important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
    scrollbar-width:thin;
    scrollbar-color:var(--iscp-border,#ccc) transparent;
}
.iscp-app .iscp-category-buttons.iscp-category-layout-slider-2row > .iscp-category-button {
    display:flex !important; width:100% !important; min-width:0 !important;
    min-height:34px !important; height:auto !important;
    padding:6px 8px !important; margin:0 !important;
    scroll-snap-align:start; overflow-wrap:anywhere;
}
.iscp-app .iscp-category-buttons.iscp-category-layout-slider::after,
.iscp-app .iscp-category-buttons.iscp-category-layout-slider-2row::after { content:none !important; display:none !important; }
.iscp-app .iscp-category-filter-row:has(.iscp-category-select) { min-width:0; }
.iscp-app .iscp-category-filter-row > .iscp-category-filter:not([style*="display:none"]) {
    display:flex !important; align-items:center; gap:8px; width:100%; min-width:0;
}
.iscp-app .iscp-category-filter-row .iscp-category-select {
    display:block !important; width:100% !important; max-width:100% !important; min-width:0 !important;
    height:36px !important; min-height:36px !important;
    padding:6px 34px 6px 10px !important; margin:0 !important;
    border-radius:8px !important; box-sizing:border-box !important;
    font-size:14px !important; line-height:1.3 !important;
}
@media(max-width:600px) {
 .iscp-app .iscp-category-buttons.iscp-category-layout-slider > .iscp-category-button { min-width:94px !important; max-width:150px; }
 .iscp-app .iscp-category-buttons.iscp-category-layout-slider-2row { grid-auto-columns:clamp(96px,38vw,140px) !important; }
}


/* v7.8.5: editable floating trigger and expandable category subcategory panel */
.iscp-app .iscp-floating-category-trigger-icon { display:inline-flex !important; align-items:center !important; justify-content:center !important; flex:0 0 auto !important; font-size:1.25em !important; line-height:1 !important; }
.iscp-app .iscp-floating-category-trigger-label { display:inline-block !important; }
.iscp-app .iscp-subcategory-panels { width:100% !important; min-width:0 !important; margin-top:8px !important; }
.iscp-app .iscp-subcategory-panel[hidden] { display:none !important; }
.iscp-app .iscp-subcategory-panel { box-sizing:border-box !important; width:100% !important; padding:10px !important; border:1px solid var(--iscp-border,#e2e5eb) !important; border-radius:12px !important; background:var(--iscp-surface,#f8f9fb) !important; box-shadow:0 4px 16px rgba(0,0,0,.05) !important; }
.iscp-app .iscp-subcategory-panel-title { margin:0 0 8px !important; font-size:12px !important; font-weight:700 !important; line-height:1.4 !important; color:var(--iscp-text,#333) !important; }
.iscp-app .iscp-subcategory-buttons { display:flex !important; flex-wrap:wrap !important; align-items:center !important; gap:5px !important; width:100% !important; }
.iscp-app .iscp-category-button.iscp-subcategory-button { min-height:27px !important; padding:5px 9px !important; border:1px solid var(--iscp-border,#d9dce3) !important; border-radius:8px !important; background:var(--iscp-surface-solid,#fff) !important; color:var(--iscp-text,#333) !important; font-size:12px !important; white-space:normal !important; }
.iscp-app .iscp-category-button.iscp-subcategory-button.is-selected { background:var(--iscp-accent,#e0738b) !important; border-color:var(--iscp-accent,#e0738b) !important; color:#fff !important; }
.iscp-app .iscp-category-chevron { display:inline-block !important; margin-inline-start:4px !important; font-size:13px !important; line-height:1 !important; }

.iscp-app .iscp-category-filter-row { flex-wrap:wrap !important; align-items:flex-start !important; }
.iscp-app .iscp-category-filter-row > .iscp-category-buttons { flex:1 1 100% !important; }
.iscp-app .iscp-category-filter-row > .iscp-subcategory-panels { flex:1 1 100% !important; }
