/* Shared dual-range control used by catalog and home selection filters. */
.dual-range-box {
    min-width: 0;
    width: 100%;
    padding: 12px 13px 14px;
    display: grid;
    gap: 12px;
    border: 1px solid rgba(16,59,45,.10);
    border-radius: 14px;
    background: rgba(255,255,255,.54);
}

.range-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
}

.range-head strong {
    color: var(--zf-forest);
    font-size: 12px;
}

.range-head > span {
    color: rgba(23,35,27,.57);
    font-size: 10px;
    text-align: right;
    white-space: nowrap;
}

.dual-range-ui {
    padding: 7px 6px;
}

.dual-track {
    position: relative;
    width: 100%;
    height: 4px;
    border-radius: 999px;
    background: rgba(16,59,45,.15);
    touch-action: none;
}

.dual-fill {
    position: absolute;
    top: 0;
    bottom: 0;
    border-radius: inherit;
    background: var(--zf-forest-2);
}

.dual-handle {
    position: absolute;
    top: 50%;
    width: 18px;
    height: 18px;
    min-width: 18px;
    min-height: 18px;
    margin: 0;
    padding: 0;
    border: 3px solid #fff;
    border-radius: 50%;
    background: var(--zf-forest-2);
    box-shadow: 0 2px 8px rgba(16,59,45,.26);
    transform: translate(-50%,-50%);
    cursor: ew-resize;
    touch-action: none;
}

.dual-handle:focus-visible {
    outline: 3px solid rgba(101,122,73,.28);
    outline-offset: 2px;
}
